Auto Increment(自增字段) 并不是所有数据库都叫这个名字,但几乎所有主流关系型数据库都支持类似功能,只是实现方式和语法不同。
下面按数据库逐个说明 ✅
AUTO_INCREMENTPRIMARY KEY 一起使用CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50)
);
✅ 支持
✅ 最常见用法
SERIAL 或 BIGSERIAL(旧方式)GENERATED AS IDENTITYCREATE TABLE user (
id SERIAL PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE user (
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name VARCHAR(50)
);
✅ 功能等同于 AUTO_INCREMENT
✅ 更标准、更灵活
IDENTITYCREATE TABLE user (
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(50)
);
✅ 功能等同于 AUTO_INCREMENT
⚠️ 没有 AUTO_INCREMENT 关键字
IDENTITY(新方式)CREATE TABLE user (
id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR(50)
);
✅ 功能等同于 AUTO_INCREMENT
INTEGER PRIMARY KEYCREATE TABLE user (
id INTEGER PRIMARY KEY,
name TEXT
);
✅ 自动自增
⚠️ 不写 AUTOINCREMENT 反而更推荐(性能更好)
IDENTITYid INT GENERATED ALWAYS AS IDENTITY
✅ 标准 SQL 风格
| 数据库 | 是否支持 | 说明 |
|---|---|---|
| PostgreSQL | ✅ | 用 SERIAL / IDENTITY |
| SQL Server | ✅ | 用 IDENTITY |
| Oracle | ✅ | 用 IDENTITY(或 SEQUENCE) |
| SQLite | ✅ | 用 INTEGER PRIMARY KEY |
| 数据库 | 自增方式 |
|---|---|
| MySQL / MariaDB | AUTO_INCREMENT |
| PostgreSQL | SERIAL / IDENTITY |
| SQL Server | IDENTITY |
| Oracle | IDENTITY |
| SQLite | INTEGER PRIMARY KEY |
| DB2 | IDENTITY |
几乎所有主流关系型数据库都支持自增主键,只是名字和实现方式不同,MySQL 的
AUTO_INCREMENT只是其中一种。
如果你有具体数据库(比如 PostgreSQL vs MySQL)或迁移场景,我可以给你等价写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。