mysql標識列


#標識列 /* 又稱為自增長列 含義:可以不用手動的插入值,系統提供默認的序列值 特點: 1、標識列必須和主鍵搭配嗎?不一定,但要求是一個key(也可以是unique) 2、一個表可以有幾個標識列?至多一個! 3、標識列的類型只能是數值型 4、標識列可以通過 SET auto_increment_increment=3;設置步長 可以通過 手動插入值,設置起始值 */ #一、創建表時設置標識列 DROP TABLE IF EXISTS tab_identity; CREATE TABLE tab_identity( id INT PRIMARY KEY AUTO_INCREMENT, NAME FLOAT UNIQUE, seat INT ); DROP TABLE IF EXISTS tab_identity; CREATE TABLE tab_identity( id INT , NAME FLOAT UNIQUE AUTO_INCREMENT, seat INT ); TRUNCATE TABLE tab_identity; # 要么 帶着所有的字段,插入時,自增長列對應插入null INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john'); #要么 不帶自增長列,插入時只插別的字段 INSERT INTO tab_identity(NAME) VALUES('lucy'); SELECT * FROM tab_identity; # 自增長列默認從1開始遞增,步長為1 SHOW VARIABLES LIKE '%auto_increment%'; # auto_increment_increment:步長 # auto_increment_offset:起始位置(mysql中不能人為設置) SET auto_increment_increment=3; # 設置步長 #如果想自己設置起始位置:10 #先執行下一句通過 手動插入值,設置起始值 INSERT INTO tab_identity(id,NAME) VALUES(10,'john'); #然后 和以前一樣,插入多行下一句: INSERT INTO tab_identity(NAME) VALUES('lucy'); #二、修改表時設置標識列 DROP TABLE IF EXISTS test; CREATE TABLE test( id INT PRIMARY KEY, NAME VARCHAR(20) ); ALTER TABLE test MODIFY COLUMN id INT AUTO_INCREMENT; INSERT INTO test VALUES (NULL,'aaa'); SELECT * FROM test; TRUNCATE TABLE test; #清空表,注意與DROP TABLE IF EXISTS test; 的區別,一個是清空,另一個刪除 SHOW VARIABLES LIKE '%auto_increment%'; SET auto_increment_increment = 2; INSERT INTO test VALUES(5,'haha'); INSERT INTO test VALUES(NULL,'haha');#運行多次該句 SELECT * FROM test; # 結果是 id = 5,7,9.... DESC test; #二、修改表時刪除標識列 ALTER TABLE test MODIFY COLUMN id INT ; DESC test;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM