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

鍍金池/ 教程/ 數(shù)據(jù)庫/ MySQL Using Sequences
MySQL 復制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時表
MySQL 介紹
MySQL 數(shù)據(jù)導出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫
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ù)導入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報
MySQL 選擇數(shù)據(jù)庫
MySQL Where Clause
MySQL 選擇查詢
MySQL Like Clause
MySQL 正則表達式
一些非常有用的學習資源
MySQL NULL Values
MySQL 刪除查詢
MySQL 數(shù)據(jù)庫信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語法

MySQL Using Sequences

序列就是按照要求的順序產(chǎn)生的一組整數(shù),比如1、2、3……這樣。數(shù)據(jù)庫中經(jīng)常會用到序列,因為很多應用程序都會需要讓表中的每行的值唯一,而使用序列就可以輕松地解決這個問題。下面就來介紹 MySQL 中的序列使用。

使用 AUTO_INCREMENT 列

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

范例

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

PERL 范例

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

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

PHP 范例

當查詢生成了 AUTO_INCREMENT 值后,通過調(diào)用 mysql_insert_id() 函數(shù)來獲取該值。

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

對已有序列進行重新編號

假如從表中刪除了許多記錄,必須對記錄再次排序。這時可以使用一個小技巧來解決,但要記住當表還連接著其他表時,一定要非常小心。

如果一定要對 AUTO_INCREMENT 列進行重新排序,那么正確的方式是將該列從表中刪除,然后再添加它。下面這個范例中就用了這個技巧,在 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);

以特定值作為序列初始值

MySQL 默認以 1 作為序列初始值,但你也可以在創(chuàng)建表時指定其他的數(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 來改變初始序列值。

mysql> ALTER TABLE t AUTO_INCREMENT = 100;