Mysql中auto increment的基本特性

2021-08-03 11:57:55 字數 1242 閱讀 5246

建立資料表時,經常會出現auto_increment這個詞,下面就來了解一下它吧。

mysql的中auto_increment型別的屬性用於為乙個表中記錄自動生成id功能,可在一定程度上代替oracle,postgresql等資料庫中的sequence。

在資料庫應用,我們經常要用到唯一編號,以標識記錄。在mysql中可通過資料列的auto_increment屬性來自動生成。

可在建表時可用「auto_increment=n」選項來指定乙個自增的初始值。

可用alter table table_name auto_increment=n命令來重設自增的起始值。

當插入記錄時,如果為auto_increment資料列明確指定了乙個數值,則會出現兩種情況,

情況一,如果插入的值與已有的編號重複,則會出現出錯資訊,因為auto_increment資料列的值必須是唯一的;

情況二,如果插入的值大於已編號的值,則會把該插入到資料列中,並使在下乙個編號將從這個新值開始遞增。也就是說,可以跳過一些編號。

如果自增序列的最大值被刪除了,則在插入新記錄時,該值被重用。

如果用update命令更新自增列,如果列值與已有的值重複,則會出錯。如果大於已有值,則下乙個編號從該值開始遞增。

在使用auto_increment時,應注意以下幾點:

auto_increment是資料列的一種屬性,只適用於整數型別資料列。

設定auto_increment屬性的資料列應該是乙個正數序列,所以應該把該資料列宣告為unsigned,這樣序列的編號個可增加一倍。

auto_increment資料列必須有唯一索引,以避免序號重複(即是主鍵或者主鍵的一部分)。

auto_increment資料列必須具備not null屬性。

auto_increment資料列序號的最大值受該列的資料型別約束,如tinyint資料列的最大編號是127,如加上unsigned,則最大為255。一旦達到上限,auto_increment就會失效。

當進行全表刪除時,mysql auto_increment會從1重新開始編號。

這是因為進行全表操作時,mysql(和php搭配之最佳組合)實際是做了這樣的優化操作:先把資料表裡的所有資料和索引刪除,然後重建資料表。

如果想刪除所有的資料行又想保留序列編號資訊,可這樣用乙個帶where的delete命令以抑制mysql(和php搭配之最佳組合)的優化:delete from table_name where 1;

可用last_insert_id()獲取剛剛自增過的值。

php中mysql函式 php中mysql有關函式

1.mysql query 一般是用來查詢資料裡面的資料。如 username post name sql select from members where login name username result mysql query sql 以上程式是檢測資料庫中是否存在表單傳送過來的使用者名稱...

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...

mysql中 變數 MYSQL中的變數 MySQL

bitscn.com 只記很基礎的知識,細節東西太麻煩了,而且我也用不到。變數分為使用者變數與系統變數。使用者變數 使用者變數與資料庫連線有關,在這個連線中宣告的變數,在連線斷開的時候,就會消失。在此連線中宣告的變數無法在另一連線中使用。使用者變數的變數名的形式為 varname的形式。名字必須以 ...