《Mysql学习在MySQL中使用序列的简单教程》要点:
本文介绍了Mysql学习在MySQL中使用序列的简单教程,希望对您有用。如果有疑问,可以联系我们。
序列是一组整数1,2,3,...中生成的顺序.序列中经常使用的数据库,因为很多应用都需要一个表中的每一行包含一个独特的值和序列提供了一个简单的方法来产生.本章介绍如何使用MySQL中的序列.
使用自动递增列:MYSQL应用
在MySQL中使用序列最简单的方法是定义一个AUTO_INCREMENT列,剩下的事情留给MySQL处理.
实例:MYSQL应用
试试下面的例子.这将创建表之后,它会在此表中它不是必需的记录ID插入几行,因为它由MySQL自动递增.MYSQL应用
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type of insect -> date DATE NOT NULL, # date collected -> origin VARCHAR(30) NOT NULL # where collected ); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO insect (id,name,date,origin) VALUES -> (NULL,'housefly','2001-09-10','kitchen'), -> (NULL,'millipede','2001-09-10','driveway'), -> (NULL,'grasshopper','2001-09-10','front yard'); Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM insect ORDER BY id; +----+-------------+------------+------------+ | id | name | date | origin | +----+-------------+------------+------------+ | 1 | housefly | 2001-09-10 | kitchen | | 2 | millipede | 2001-09-10 | driveway | | 3 | grasshopper | 2001-09-10 | front yard | +----+-------------+------------+------------+ 3 rows in set (0.00 sec)
获取AUTO_INCREMENT值:MYSQL应用
LAST_INSERT_ID()是一个SQL的函数,可以用它在任何客户端来了解如何发出SQL语句.否则PERL和PHH的脚本提供了独特的功能来检索的最后一个记录的自动递增值.
PERL 例子:MYSQL应用
使用mysql_insertid属性来获得查询产生的AUTO_INCREMENT值.此属性的访问是通过一个数据库句柄或语句句柄,这取决于如何发出查询.下面的示例引用,它通过数据库句柄:MYSQL应用
$dbh->do ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')"); my $seq = $dbh->{mysql_insertid};
PHP 例子:MYSQL应用
发出后产生一个AUTO_INCREMENT值的查询,检索的值调用mysql_insert_id():MYSQL应用
mysql_query ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')", $conn_id); $seq = mysql_insert_id ($conn_id);
重编为一个现有的序列:MYSQL应用
有可能出现这样的情况:当记录从表中删除了一部分要重新排序的所有记录.这可以通过使用一个简单的技巧,但应该非常小心,如果表是参加与其他表.MYSQL应用
如果确定是不可避免的重测序的AUTO_INCREMENT列的方式,这样做是从表中删除列,然后重新添加它.下面的例子演示了如何使用这种技术在BUG重新编号的id值:MYSQL应用
mysql> ALTER TABLE insect DROP id; mysql> ALTER TABLE insect -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, -> ADD PRIMARY KEY (id);
启动序列在一个的特殊的值:MYSQL应用
默认情况下,MySQL将开始顺序1,但在创建表的时候可以指定任何其他数字.下面的例子,MySQL将从100开始顺序.MYSQL应用
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type of insect -> date DATE NOT NULL, # date collected -> origin VARCHAR(30) NOT NULL # where collected );
或者也可以创建表,然后设置初始序列值ALTER TABLE.MYSQL应用
mysql> ALTER TABLE t AUTO_INCREMENT = 100;
《Mysql学习在MySQL中使用序列的简单教程》是否对您有启发,欢迎查看更多与《Mysql学习在MySQL中使用序列的简单教程》相关教程,学精学透。维易PHP学院为您提供精彩教程。