每次有新弟子入门,我都要去查一下上一个弟子的 ID 是多少,然后加 1 填进去,好麻烦啊!万一填重复了怎么办?
何不让它自己生长?用 AUTO INCREMENT,ID 会自动顺延,生生不息,绝不重复。
AUTO INCREMENT 会在新记录插入表中时生成一个唯一的数字。
MySQL 写法:
CREATE TABLE Disciples (
ID int NOT NULL AUTO_INCREMENT,
Name varchar(255) NOT NULL,
PRIMARY KEY (ID)
);
SQL Server 写法: 用 IDENTITY(1,1)
CREATE TABLE Disciples (
ID int IDENTITY(1,1) PRIMARY KEY,
Name varchar(255) NOT NULL
);
PostgreSQL 写法: 用 SERIAL
CREATE TABLE Disciples (
ID SERIAL PRIMARY KEY,
Name varchar(255) NOT NULL
);
Oracle (12c+) 写法:
CREATE TABLE Disciples (
ID NUMBER GENERATED BY DEFAULT AS IDENTITY,
Name varchar2(255) NOT NULL,
PRIMARY KEY (ID)
);
那插入数据的时候,ID 这一栏我填什么?
不用填! 甚至不要提它。系统会自动赋予它下一个数字。
INSERT INTO Disciples (Name)
VALUES ('Zhang Xiaofan');
结果:ID 会自动变成 1(如果是第一个)。下一个就是 2,以此类推。