由于数据库的多样性,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";

kingbase实现主键id自增

 

第二种、使用序列+触发器来创建,主键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自增!

相关文章: