国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

在MySQL中使用序列的簡單教程

2020-01-18 22:53:32
字體:
來源:轉載
供稿:網友

序列是一組整數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: 0mysql> 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;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海宁市| 梁河县| 绥化市| 阿拉善盟| 肥乡县| 大庆市| 富锦市| 高淳县| 西青区| 襄城县| 昂仁县| 普洱| 交口县| 莲花县| 会同县| 马尔康县| 金溪县| 竹山县| 咸丰县| 登封市| 通辽市| 文昌市| 滨海县| 原平市| 班玛县| 蓬安县| 教育| 阜南县| 色达县| 油尖旺区| 将乐县| 衡山县| 南漳县| 自治县| 鄄城县| 招远市| 万年县| 彰武县| 湄潭县| 高州市| 泽库县|