数据库实践——瀚高数据库设置自增字段

方式一: 使用SERIAL

create table tablename ( colname serial );

等同于

CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (colname integer NOT NULL DEFAULT nextval('tablename_colname_seq'));
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

方式二: 创建自增序列(起始值必须大于 0 )

CREATE SEQUENCE event_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;   

主键 ID 默认设置为

alter table event alter column id set default nextval('event_id_seq');

方式三: 创建function

CREATE OR REPLACE FUNCTION user() RETURNS trigger AS $$ BEGIN    NEW.ID := nextval('user_seq');    RETURN NEW; END; $$LANGUAGE 'plpgsql';  

创建 trigger

CREATE TRIGGER user_seq BEFORE INSERT ON user FOR EACH ROW WHEN (NEW.id IS NULL) EXECUTE PROCEDURE user();  

创建seq

CREATE SEQUENCE user_seq OWNED BY user.id;

返回自增id的值

insert into users (name,gender,age,remark) values (#{name},#{gender},#{age},#{remark}) returning id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月微风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值