MySQL、PostgreSQL、Oracle、SQL Server四大数据库对比

时间:2025-04-03 09:36:51
方式一 序列 + 默认值 - 建序列 CREATE SEQUENCE seq_name [minvalue 1 maxvalue 9223372036854775807[long最大值] 或 NOMAXvalue[不设置最大值]] START WITH 1 INCREMENT BY 1 NOCACHE; - 建表 CREATE TABLE table_name ( id NUMBER DEFAULT seq_name.NEXTVAL PRIMARY KEY, ... ); 方式二 序列 + 触发器 - 建序列同上 - 建表 CREATE TABLE table_name ( id NUMBER, ... ); - 建触发器 - 方式一 CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN :NEW.id := seq_name.NEXTVAL; END; - 方式二 CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN SELECT seq_name.nextval INTO :new.id FROM dual; END;