1樓:
alter table table_name auto_increment=n;
注意n只能大於已有的auto_increment的整數值,小於的值無效.
show table status like 'table_name' 可以看到auto_increment這一列是表現有的值.
步進值沒法改變.只能通過下面提到last_inset_id()函式變通使用
在使用auto_increment時,應注意以下幾點:
auto_increment是資料列的一種屬性,只適用於整數型別資料列。
設定auto_increment屬性的資料列應該是一個正數序列,所以應該把該資料列宣告為unsigned,這樣序列的編號個可增加一倍。
auto_increment資料列必須有唯一索引,以避免序號重複。
auto_increment資料列必須具備not null屬性。
auto_increment資料列序號的最大值受該列的資料型別約束,如tinyint資料列的最大編號是127,如加上unsigned,則最大為255。一旦達到上限,auto_increment就會失效。
在不用auto_increment的情況下生成序列,可利用帶引數的last_insert_id()函式。如果用一個帶引數的last_insert_id(expr)去插入或修改一個資料列,緊接著又呼叫不帶引數的last_insert_id()函式,則第二次函式呼叫返回的就是expr的值。下面演示該方法的具體操作:
先建立一個只有一個資料行的資料表:
create table seq_table (id int unsigned not null);
insert into seq_table values (0);
接著用以下操作檢索出序列號:
update seq_table set seq = last_insert_id( seq + 1 );
select last_insert_id();
通過修改seq+1中的常數值,可生成不同步長的序列,如seq+10可生成步長為10的序列。
該方法可用於計數器,在資料表中插入多行以記錄不同的計數值。再配合last_insert_id()函式的返回值生成不同內容的計數值。這種方法的優點是不用事務或lock,unlock表就可生成唯一的序列編號。
不會影響其它客戶程式的正常表操作。
2樓:paradise豬
identity(1000,1)
PHP查詢mysql指定欄位,並將同列另段賦值變數
q select user from message where id 1 sql查詢語句 mysql query set names gb2312 rs mysql query q,conn 獲取資料集 if rs row mysql fetch array rs 這樣從資源中取結果,是一個陣列 ...
mysql能設定資料型別長度嗎,mysql中想要在已有的表中修改資料型別的長度,急
能的呀,你建立資料庫的時候就會涉及到啊 mysql能設定資料型別長度嗎 根據所需連線mysql 新建資料庫 表 根據欄位設定長度 完成後儲存資料 具體操作 如下 最總得出結論 有長度,小數點設定所以可以設定型別長度 mysql中想要在已有的表中修改資料型別的長度,急 50 sql語句說明 alter...
mysql多表查詢,相同欄位怎樣分別顯示
易冷 落 select a.name as name1,b.name as name2 from 表1 a left join 表2 b on a.uid b.id order by a.id desc 拓展回答 mysql是一個關係型資料庫管理系統,由瑞典mysql ab 公司開發,目前屬於 or...