国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

在MySQL中使用序列的簡單教程

2024-07-24 13:07:23
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了在MySQL中使用序列的簡單教程,是MySQL入門學習中的基礎知識,文中給出了基于PHP和Perl腳本的示例,需要的朋友可以參考下

序列是一組整數1,2,3,...中生成的順序。序列中經常使用的數據庫,因為很多應用都需要一個表中的每一行包含一個獨特的值和序列提供了一個簡單的方法來產生。本章介紹如何使用MySQL中的序列。

使用自動遞增列:

在MySQL中使用序列最簡單的方法是定義一個AUTO_INCREMENT列,剩下的事情留給MySQL處理。

實例:

試試下面的例子。這將創建表之后,它會在此表中它不是必需的記錄ID插入幾行,因為它由MySQL自動遞增。

 

 
  1. mysql> CREATE TABLE insect 
  2. -> ( 
  3. -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
  4. -> PRIMARY KEY (id), 
  5. -> name VARCHAR(30) NOT NULL, # type of insect 
  6. -> date DATE NOT NULL, # date collected 
  7. -> origin VARCHAR(30) NOT NULL # where collected 
  8. ); 
  9. Query OK, 0 rows affected (0.02 sec) 
  10. mysql> INSERT INTO insect (id,name,date,origin) VALUES 
  11. -> (NULL,'housefly','2001-09-10','kitchen'), 
  12. -> (NULL,'millipede','2001-09-10','driveway'), 
  13. -> (NULL,'grasshopper','2001-09-10','front yard'); 
  14. Query OK, 3 rows affected (0.02 sec) 
  15. Records: 3 Duplicates: 0 Warnings: 0 
  16. mysql> SELECT * FROM insect ORDER BY id; 
  17. +----+-------------+------------+------------+ 
  18. | id | name | date | origin | 
  19. +----+-------------+------------+------------+ 
  20. | 1 | housefly | 2001-09-10 | kitchen | 
  21. | 2 | millipede | 2001-09-10 | driveway | 
  22. | 3 | grasshopper | 2001-09-10 | front yard | 
  23. +----+-------------+------------+------------+ 
  24. rows in set (0.00 sec) 

獲取AUTO_INCREMENT值:

LAST_INSERT_ID()是一個SQL的函數,可以用它在任何客戶端來了解如何發出SQL語句。否則PERL和PHH的腳本提供了獨特的功能來檢索的最后一個記錄的自動遞增值。

PERL 例子:

使用mysql_insertid屬性來獲得查詢產生的AUTO_INCREMENT值。此屬性的訪問是通過一個數據庫句柄或語句句柄,這取決于如何發出查詢。下面的示例引用,它通過數據庫句柄:

 

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

PHP 例子:

發出后產生一個AUTO_INCREMENT值的查詢,檢索的值調用mysql_insert_id():

 

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

重編為一個現有的序列:

有可能出現這樣的情況:當記錄從表中刪除了一部分要重新排序的所有記錄。這可以通過使用一個簡單的技巧,但應該非常小心,如果表是參加與其他表。

如果確定是不可避免的重測序的AUTO_INCREMENT列的方式,這樣做是從表中刪除列,然后重新添加它。下面的例子演示了如何使用這種技術在BUG重新編號的id值:

 

 
  1. mysql> ALTER TABLE insect DROP id; 
  2. mysql> ALTER TABLE insect 
  3. -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST
  4. -> ADD PRIMARY KEY (id); 

啟動序列在一個的特殊的值:

默認情況下,MySQL將開始順序1,但在創建表的時候可以指定任何其他數字。下面的例子,MySQL將從100開始順序。

 

 
  1. mysql> CREATE TABLE insect 
  2. -> ( 
  3. -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100, 
  4. -> PRIMARY KEY (id), 
  5. -> name VARCHAR(30) NOT NULL, # type of insect 
  6. -> date DATE NOT NULL, # date collected 
  7. -> origin VARCHAR(30) NOT NULL # where collected 
  8. ); 

或者也可以創建表,然后設置初始序列值ALTER TABLE。

 

 
  1. mysql> ALTER TABLE t AUTO_INCREMENT = 100; 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 樟树市| 鹤庆县| 枣庄市| 克什克腾旗| 华宁县| 柳江县| 西城区| 美姑县| 翁牛特旗| 中牟县| 凯里市| 鄂州市| 永德县| 西盟| 福州市| 邳州市| 隆尧县| 平泉县| 东乡| 潞西市| 凤阳县| 绿春县| 六安市| 无棣县| 治多县| 建阳市| 白银市| 泸西县| 格尔木市| 石屏县| 辉县市| 招远市| 临汾市| 疏附县| 三江| 塔城市| 黔南| 安新县| 桐城市| 宜昌市| 南宫市|