由于数据库的多样性,sql语法使用上也是会有一定的差异。
今天介绍一下kingbase中如何使主键id自增。
第一种方法:
使用数据库中自带的参数类型serial类型,即可实现主键自增,如下示例:
1、创建ord表:
CREATE TABLE ord(
id SERIAL,
ord_no INT NOT NULL,
ord_name VARCHAR(32),
CONSTRAINT "ord_PKEY" PRIMARY KEY ("id")
);
2、插入几条数据:
INSERT INTO "PUBLIC"."ord"
("id", "ord_no", "ord_name")
VALUES(NEXTVAL('ord_id_SEQ'::REGCLASS), 2, 'sfa');
INSERT INTO "PUBLIC"."ord"
("id", "ord_no", "ord_name")
VALUES(NEXTVAL('ord_id_SEQ'::REGCLASS), 3, 'aaa');
3、查询ord结果集:
SELECT * FROM "ord";
第二种、使用序列+触发器来创建,主键id自增:
1、创建ord表
CREATE TABLE ord(
id SERIAL,
ord_no INT NOT NULL,
ord_name VARCHAR(32),
CONSTRAINT "ord_PKEY" PRIMARY KEY ("id")
);
2、创建序列ord_seq
CREATE SEQUENCE ord_seq START WITH 1 INCREMENT BY 1;
3、创建触发器
CREATE OR REPLACE TRIGGER add_ord_id
BEFORE INSERT
ON "ord"
FOR EACH ROW
AS
BEGIN
SELECT ord_seq.nextval INTO NEW.id FROM dual;
END
上面两种方法,在操作insert时都会实现主键id自增!