日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql sql使用序列_SQL 使用序列

發(fā)布時(shí)間:2025/3/12 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql sql使用序列_SQL 使用序列 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SQL 使用序列

序列是根據(jù)需要產(chǎn)生的一組有序整數(shù):1, 2, 3 ... 序列在數(shù)據(jù)庫(kù)中經(jīng)常用到,因?yàn)樵S多應(yīng)用要求數(shù)據(jù)表中的的每一行都有一個(gè)唯一的值,序列為此提供了一種簡(jiǎn)單的方法。

本節(jié)闡述在 MySQL 中如何使用序列。

使用 AUTO_INCREMENT 列:

在 MySQL 中使用序列最簡(jiǎn)單的方式是,把某列定義為 AUTO_INCREMENT,然后將剩下的事情交由 MySQL 處理:

示例:

試一下下面的例子,該例將會(huì)創(chuàng)建一張新表,然后再里面插入幾條記錄,添加記錄時(shí)并不需要指定記錄的 ID,因?yàn)樵摿械闹涤?MySQL 自動(dòng)增加。

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() 是一個(gè) SQL 函數(shù),可以用在任何能夠執(zhí)行 SQL 語句地方。另外,Perl 和 PHP 各自提供了其獨(dú)有的函數(shù),用于獲得最后一條記錄的 AUTO_INCREMENT 值。

Perl 示例:

使用 mysql_insertid 屬性來獲取 SQL 查詢產(chǎn)生的 AUTO_INCREMENT 值。根據(jù)執(zhí)行查詢的方式不同,該屬性可以通過數(shù)據(jù)庫(kù)句柄或者語句句柄來訪問。下面的示例通過數(shù)據(jù)庫(kù)句柄取得自增值:

$dbh->do ("INSERT INTO INSECT (name,date,origin)

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

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

PHP 示例:

在執(zhí)行完會(huì)產(chǎn)生自增值的查詢后,可以通過調(diào)用 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);

重新編號(hào)現(xiàn)有序列:

當(dāng)你從表中刪除了很多記錄后,可能會(huì)想要對(duì)所有的記錄重新定序。只要略施小計(jì)就能達(dá)到此目的,不過如果你的表與其他表之間存在連接的話,請(qǐng)千萬小心。

當(dāng)你覺得不得不對(duì) AUTO_INCREMENT 列重新定序時(shí),從表中刪除該列,然后再將其添加回來,就可以達(dá)到目的了。下面的示例展示了如何使用這種方法,為 INSECT 表中的 ID 值重新定序:

mysql> ALTER TABLE INSECT DROP id;

mysql> ALTER TABLE insect

-> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,

-> ADD PRIMARY KEY (id);

從特定值的序列

默認(rèn)情況下,MySQL 中序列的起始值為 1,不過你可以在創(chuàng)建數(shù)據(jù)表的時(shí)候,指定任意其他值。下面的示例中,MySQL 將序列的起始值設(shè)為 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

);

或者,你也可以先創(chuàng)建數(shù)據(jù)表,然后使用 ALTER TABLE 來設(shè)置序列的起始值:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;

總結(jié)

以上是生活随笔為你收集整理的mysql sql使用序列_SQL 使用序列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。