mysql中$使用_在MySQL中使用序列的简单教程
发布日期:2021-06-24 10:18:49 浏览次数:3 分类:技术文章

本文共 2352 字,大约阅读时间需要 7 分钟。

序列是一组整数1,2,3,...中生成的顺序。序列中经常使用的数据库,因为很多应用都需要一个表中的每一行包含一个独特的值和序列提供了一个简单的方法来产生。本章介绍如何使用MySQL中的序列。

使用自动递增列:

在MySQL中使用序列最简单的方法是定义一个AUTO_INCREMENT列,剩下的事情留给MySQL处理。

实例:

试试下面的例子。这将创建表之后,它会在此表中它不是必需的记录ID插入几行,因为它由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值:

LAST_INSERT_ID()是一个SQL的函数,可以用它在任何客户端来了解如何发出SQL语句。否则perl和PHH的脚本提供了独特的功能来检索的最后一个记录的自动递增值。

PERL 例子:

使用mysql_insertid属性来获得查询产生的AUTO_INCREMENT值。此属性的访问是通过一个数据库句柄或语句句柄,这取决于如何发出查询。下面的示例引用,它通过数据库句柄: $dbh->do ("INSERT INTO insect (name,date,origin)

VALUES('moth','2001-09-14','windowsill')");

my $seq = $dbh->{mysql_insertid};

PHP 例子:

发出后产生一个AUTO_INCREMENT值的查询,检索的值调用mysql_insert_id(): mysql_query ("INSERT INTO insect (name,date,origin)

VALUES('moth','2001-09-14','windowsill')", $conn_id);

$seq = mysql_insert_id ($conn_id);

重编为一个现有的序列:

有可能出现这样的情况:当记录从表中删除了一部分要重新排序的所有记录。这可以通过使用一个简单的技巧,但应该非常小心,如果表是参加与其他表。

如果确定是不可避免的重测序的AUTO_INCREMENT列的方式,这样做是从表中删除列,然后重新添加它。下面的例子演示了如何使用这种技术在BUG重新编号的id值: mysql> ALTER TABLE insect DROP id;

mysql> ALTER TABLE insect

-> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,

-> ADD PRIMARY KEY (id);

启动序列在一个的特殊的值:

默认情况下,MySQL将开始顺序1,但在创建表的时候可以指定任何其他数字。下面的例子,MySQL将从100开始顺序。 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> ALTER TABLE t AUTO_INCREMENT = 100;

转载地址:https://blog.csdn.net/weixin_32050033/article/details/113587384 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql alter auto increment_将MySQL列更改为AUTO_INCREMENT
下一篇:ewb交通灯报告和文件_基于ewb平台的交通灯电路设计.doc

发表评论

最新留言

很好
[***.229.124.182]2024年04月07日 08时29分03秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章