在MySQL中使用序列的簡單教程
序列是一組整數1,2,3,...中生成的順序。序列中經常使用的資料庫,因為很多應用都需要一個表中的每一行包含一個獨特的值和序列提供了一個簡單的方法來產生。本章介紹如何使用MySQL中的序列。
使用自動遞增列:
在MySQL中使用序列最簡單的方法是定義一個AUTO_INCREMENT列,剩下的事情留給MySQL處理。
例項:
試試下面的例子。這將建立表之後,它會在此表中它不是必需的記錄ID插入幾行,因為它由MySQL自動遞增。
?
123456789101112131415161718192021222324 |
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的函式,可以用它在任何客戶端來了解如何發出SQL語句。否則PERL和PHH的指令碼提供了獨特的功能來檢索的最後一個記錄的自動遞增值。
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 例子:
發出後產生一個AUTO_INCREMENT值的查詢,檢索的值呼叫mysql_insert_id():
?
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列的方式,這樣做是從表中刪除列,然後重新新增它。下面的例子演示瞭如何使用這種技術在BUG重新編號的id值:
?
1234 |
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開始順序。
?
12345678 |
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。
?
1 |
mysql> ALTER TABLE t AUTO_INCREMENT = 100;
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2310/viewspace-2811115/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mackdown簡單的使用教程Mac
- 在elasticsearch中簡單的使用script_fieldsElasticsearch
- mysql的event的簡單使用MySql
- butterfly簡單使用教程
- OpenCV在Android中的整合與簡單使用OpenCVAndroid
- 在MySQL中建立實現自增的序列(Sequence)MySql
- Docker簡單使用MySQLDockerMySql
- MySQL Profile在5.7的簡單測試MySql
- MacDroid使用簡單教程~Mac
- linux 安裝 mysql簡單教程LinuxMySql
- 在Java 11中建立一個簡單的模組化應用教程Java
- 在flutter中使用hooks的簡單使用FlutterHook
- Mobx在Flutter中的使用教程Flutter
- [原創視訊]PHP在netbeans中的簡單使用PHPBean
- Redis在.net中的使用(3)簡單的主從複製Redis
- 簡單分析MySQL中的primary key功能MySql
- React中useEffect的簡單使用React
- MySQL中的SUM函式使用教程MySql函式
- 最簡單mysql的使用方法(轉)MySql
- 【MySql】MySql儲存,遊標,迴圈的簡單使用MySql
- InnoSetup簡單教程一,安裝使用和簡單測試
- 在dos下使用簡單的ftp命令FTP
- PHP + Laravel 的簡單應用教程 — ajax 的使用PHPLaravel
- 簡單解析MySQL中的cardinality異常MySql
- 簡單瞭解 MySQL 中相關的鎖MySql
- Android中Lottie的簡單使用Android
- 【SQL Server中SMO的簡單使用】SQLServer
- SpringFramework中的AOP簡單使用SpringFramework
- MySQL實戰 | 06/07 簡單說說MySQL中的鎖MySql
- Cygwin的安裝及在Android jni中的簡單使用舉例Android
- MySQL資料庫的基本使用簡單易懂MySql資料庫
- IOS中WKWebView 簡單使用iOSWebView
- 簡單介紹oracle重置序列的方法Oracle
- JWT在專案中的簡單應用JWT
- mysql查詢快取簡單使用MySql快取
- mysql日誌系統簡單使用MySql
- MessagePack 序列化框架在netty中的簡單實現。框架Netty
- 簡單的產品在使用者頭腦中——《簡約至上》讀書筆記筆記