MySQL 序列 AUTO_INCREMENT詳解及例項程式碼
MySQL 序列 AUTO_INCREMENT詳解及例項程式碼
MySQL序列是一組整數:1, 2, 3, ...,由於一張資料表只能有一個欄位自增主鍵, 如果你想實現其他欄位也實現自動增加,就可以使用MySQL序列來實現。
本章我們將介紹如何使用MySQL的序列。
使用AUTO_INCREMENT
MySQL中最簡單使用序列的方法就是使用 MySQL AUTO_INCREMENT 來定義列。
例項
以下例項中建立了資料表insect, insect中id無需指定值可實現自動增長。
?
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值
在MySQL的客戶端中你可以使用 SQL中的LAST_INSERT_ID( ) 函式來獲取最後的插入表中的自增列的值。
在PHP或PERL指令碼中也提供了相應的函式來獲取最後的插入表中的自增列的值。
PERL例項
使用 mysql_insertid 屬性來獲取 AUTO_INCREMENT 的值。 例項如下:
?
123 |
$dbh->do ( "INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')" ); my $seq = $dbh->{mysql_insertid};
|
PHP例項
PHP 透過 mysql_insert_id ()函式來獲取執行的插入SQL語句中 AUTO_INCREMENT列的值。
?
123 |
mysql_query ( "INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')" , $conn_id); $seq = mysql_insert_id ($conn_id);
|
重置序列
如果你刪除了資料表中的多條記錄,並希望對剩下資料的AUTO_INCREMENT列進行重新排列,那麼你可以透過刪除自增的列,然後重新新增來實現。 不過該操作要非常小心,如果在刪除的同時又有新記錄新增,有可能會出現資料混亂。操作如下所示:
?
1234 |
mysql> ALTER TABLE insect DROP id; mysql> ALTER TABLE insect -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST , -> ADD PRIMARY KEY (id);
|
設定序列的開始值
一般情況下序列的開始值為1,但如果你需要指定一個開始值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 );
|
或者你也可以在表建立成功後,透過以下語句來實現:
?
1 |
mysql> ALTER TABLE t AUTO_INCREMENT = 100;
|
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支援!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1806/viewspace-2805945/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- EventBus詳解及簡單例項單例
- MySQL資料庫的事務處理用法與例項程式碼詳解MySql資料庫
- MySQL共享鎖:使用與例項詳解MySql
- Python訪問小程式簡單方法程式碼例項詳解Python
- LINUX Shell指令碼程式設計例項詳解(一)上Linux指令碼程式設計
- 例項程式碼詳解正規表示式匹配換行
- 合成複用原則詳解篇(附圖解及原始碼例項)圖解原始碼
- Oracle minus用法詳解及應用例項Oracle
- Tomcat常見異常及解決方案程式碼例項Tomcat
- Linux IO模式及 select、poll、epoll詳解(含部分例項原始碼)Linux模式原始碼
- CSS3 Flex 彈性佈局例項程式碼詳解CSSS3Flex
- CSS3繪製太極圖程式碼例項詳解CSSS3
- axios模擬GET請求例項及詳解iOS
- Python程式和執行緒例項詳解Python執行緒
- JavaScript中常用的事件程式碼及例項JavaScript事件
- 元件例項 $el 詳解元件
- Linux與windows檔案傳輸詳解及例項LinuxWindows
- jQuery tab選項卡程式碼詳解jQuery
- dom操作程式碼例項
- css梯形程式碼例項CSS
- CSS例項詳解:Flex佈局CSSFlex
- Spring事務管理(詳解+例項)Spring
- MariaDB資料庫的外來鍵約束例項程式碼介紹詳解資料庫
- 一次RAC例項驅逐詳細分析及解決方案
- ubuntu ftp 伺服器搭建及vsftpd.conf配置例項詳解UbuntuFTP伺服器
- JavaScript in運算子程式碼例項JavaScript
- 設計模式例項程式碼設計模式
- table表格美化程式碼例項
- 詳解Python物件導向程式設計之類、例項、方法Python物件程式設計
- 純css tab選項卡程式碼例項CSS
- jQuery tab選項卡效果程式碼例項jQuery
- PHP7 新增功能詳解(例項)PHP
- 50個典型電路例項詳解
- Python物件導向多型實現原理及程式碼例項Python物件多型
- Serializable詳解(1):程式碼驗證Java序列化與反序列化Java
- canvas刮刮樂程式碼例項Canvas
- canvas載入效果程式碼例項Canvas
- CSS空心箭頭程式碼例項CSS