MySQL中是否有類似于PostgreSQL中的序列(Sequence)的功能呢?在MySQL中沒有名為Sequence的對象,但是我們可以通過自增主鍵和函數(shù)來實現(xiàn)類似的功能。
MySQL中可以使用AUTO_INCREMENT關鍵字定義自增主鍵,例如:
CREATE TABLE mytable ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) );
上面的代碼創(chuàng)建了一個表mytable,其中id為自增主鍵,我們可以不給id字段賦值,在插入數(shù)據(jù)時MySQL會自動為其生成一個唯一的值。
如果我們需要從指定的值開始自增,可以使用ALTER TABLE語句修改表結(jié)構(gòu):
ALTER TABLE mytable AUTO_INCREMENT = 100;
上面的代碼將自增主鍵從100開始。
如果需要批量獲取自增主鍵的值,可以使用LAST_INSERT_ID()函數(shù),例如:
INSERT INTO mytable (name) VALUES ('John'); SELECT LAST_INSERT_ID();
上面的代碼插入一條數(shù)據(jù),并返回其自增主鍵的值。如果需要獲取多條數(shù)據(jù)的自增主鍵值,可以使用循環(huán):
INSERT INTO mytable (name) VALUES ('John'); SELECT LAST_INSERT_ID(); INSERT INTO mytable (name) VALUES ('Mary'); SELECT LAST_INSERT_ID();
在以上例子中,每次插入一條數(shù)據(jù),并獲取其自增主鍵的值。
因此,盡管MySQL中沒有名為Sequence的對象,但是通過自增主鍵和函數(shù)可以實現(xiàn)類似的功能。
上一篇jquery onblu
下一篇法定自查css檢查單