在建立資料表時,將主鍵欄位定義為 AUTO_INCREMENT,資料庫會自動為新增列分配唯一遞增整數:
CREATE TABLE customers (
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
name VARCHAR(15)
);
INSERT INTO customers (name) VALUES ('name1'), ('name2');
-- id 會自動產生 1, 2
SQL Server 使用 IDENTITY(種子, 遞增) 達成相同效果:
CREATE TABLE customers (
id INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
name VARCHAR(15)
);
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`uid` INT(11) NOT NULL AUTO_INCREMENT,
`gid` INT(11) DEFAULT NULL,
`username` VARCHAR(15) NOT NULL,
`password` VARCHAR(15) NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
A:可以。 自增欄位通常做主鍵,但也可自訂其他唯一欄位為主鍵。只要確保插入資料時不重複即可。建議仍將自增欄位設為主鍵,避免維護麻煩。
ALTER TABLE table_name AUTO_INCREMENT = 1000; (需大於現有最大 ID)
不會。自增計數器只增不減,重啟服務時會以 SELECT MAX(id) FROM table 重新載入。若需歸零請用 TRUNCATE TABLE。