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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql的auto_increment詳解MySqlREM
- HBase(0.96以上版本)過濾器Filter詳解及例項程式碼過濾器Filter
- EventBus詳解及簡單例項單例
- jquery星級評分程式碼例項詳解jQuery
- MySQL資料庫的事務處理用法與例項程式碼詳解MySql資料庫
- javascript元素滑鼠跟隨效果程式碼例項詳解JavaScript
- hover事件延遲處理程式碼例項詳解事件
- 將表單元素序列為物件程式碼例項物件
- 將form表單序列為物件例項程式碼ORM物件
- js將字串轉換為編碼序列程式碼例項JS字串
- 合成複用原則詳解篇(附圖解及原始碼例項)圖解原始碼
- 【Mysql】mysql事務處理用法與例項詳解MySql
- 表單序列化應用程式碼相關程式碼例項
- Oracle minus用法詳解及應用例項Oracle
- curl庫pycurl例項及引數詳解
- rman catalog的配置及詳解例項
- 例項程式碼詳解正規表示式匹配換行
- jquery將物件序列化為字串程式碼例項jQuery物件字串
- Python訪問小程式簡單方法程式碼例項詳解Python
- curl例項詳解
- sudo 詳解+例項
- mysql儲存過程經典例項詳解MySql儲存過程
- python urllib2詳解及例項Python
- C# Timer用法及例項詳解C#
- CSS3繪製太極圖程式碼例項詳解CSSS3
- LINUX Shell指令碼程式設計例項詳解(一)上Linux指令碼程式設計
- CSS3 Flex 彈性佈局例項程式碼詳解CSSS3Flex
- js點選返回網頁頂部程式碼例項詳解JS網頁
- C#條碼生成及列印例項程式碼C#
- Tomcat常見異常及解決方案程式碼例項Tomcat
- JavaScript中常用的事件程式碼及例項JavaScript事件
- axios模擬GET請求例項及詳解iOS
- Linux NFS典型例項及許可權詳解LinuxNFS
- Spring mvc+struts2+Hibernate整合例項程式碼(註解詳解)SpringMVC
- jQuery將表單序列化為物件的程式碼例項jQuery物件
- 元件例項 $el 詳解元件
- Crontab例項-命令詳解
- ZIP壓縮演算法原理分析及解壓例項程式碼演算法