在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ MySQL Using Sequences
MySQL 復(fù)制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時(shí)間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時(shí)表
MySQL 介紹
MySQL 數(shù)據(jù)導(dǎo)出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類型
MySQL 插入查詢
MySQL 字符串函數(shù)
MySQL Using Sequences
MySQL 管理
MySQL 數(shù)據(jù)導(dǎo)入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報(bào)
MySQL 選擇數(shù)據(jù)庫(kù)
MySQL Where Clause
MySQL 選擇查詢
MySQL Like Clause
MySQL 正則表達(dá)式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢
MySQL 數(shù)據(jù)庫(kù)信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫(kù)
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語(yǔ)法

MySQL Using Sequences

序列就是按照要求的順序產(chǎn)生的一組整數(shù),比如1、2、3……這樣。數(shù)據(jù)庫(kù)中經(jīng)常會(huì)用到序列,因?yàn)楹芏鄳?yīng)用程序都會(huì)需要讓表中的每行的值唯一,而使用序列就可以輕松地解決這個(gè)問(wèn)題。下面就來(lái)介紹 MySQL 中的序列使用。

使用 AUTO_INCREMENT 列

在MySQL中,序列最簡(jiǎn)單的用法就是將一列定義為 AUTO_INCREMENT ,然后讓 MySQL 來(lái)處理剩下的任務(wù)。

范例

在下面這個(gè)范例中,先創(chuàng)建一個(gè)表,然后插入一些行。不需要提供記錄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ù),所以可以把它用在任何能夠理解 SQL 語(yǔ)句的客戶端中。另外,PERL 和 PHP 還提供了一些專有的函數(shù)來(lái)獲取最后記錄的自動(dòng)增加值。

PERL 范例

使用 mysql_insertid 屬性來(lái)獲取查詢所生成的 AUTO_INCREMENT 值。根據(jù)查詢方式,該屬性可通過(guò)數(shù)據(jù)庫(kù)句柄或語(yǔ)句句柄來(lái)訪問(wèn)。下面這個(gè)范例是從數(shù)據(jù)庫(kù)句柄來(lái)引用該屬性的。

$dbh->do ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')");
my $seq = $dbh->{mysql_insertid};

PHP 范例

當(dāng)查詢生成了 AUTO_INCREMENT 值后,通過(guò)調(diào)用 mysql_insert_id() 函數(shù)來(lái)獲取該值。

mysql_query ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')", $conn_id);
$seq = mysql_insert_id ($conn_id);

對(duì)已有序列進(jìn)行重新編號(hào)

假如從表中刪除了許多記錄,必須對(duì)記錄再次排序。這時(shí)可以使用一個(gè)小技巧來(lái)解決,但要記住當(dāng)表還連接著其他表時(shí),一定要非常小心。

如果一定要對(duì) AUTO_INCREMENT 列進(jìn)行重新排序,那么正確的方式是將該列從表中刪除,然后再添加它。下面這個(gè)范例中就用了這個(gè)技巧,在 insect 表中對(duì) 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 默認(rèn)以 1 作為序列初始值,但你也可以在創(chuàng)建表時(shí)指定其他的數(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)建表,然后再使用 ALTER TABLE 來(lái)改變初始序列值。

mysql> ALTER TABLE t AUTO_INCREMENT = 100;