postgresql_触发函数,序列

1.自动插入序号:

创建自然数序列:

     CREATE SEQUENCE schema名.seq名
                INCREMENT 2
                START 1
                MINVALUE 1
                MAXVALUE 99999999
                CACHE 1;

     ALTER SEQUENCE schema名.seq名 OWNER TO user名;

使用序列:

     SELECT nextval('schema名.seq名');

设定字段缺省值为序列:

     alter table schema名.table名 alter column 字段名 set default nextval('schema名.seq名');

insert语句插入:

    insert INTO schema名.table名(字段名) VALUES(值);

2.自动插入时间戳:

2.1生成记录的时间戳;

设定时间的函数和宏:

CURRENT_DATE:2018-11-05
CURRENT_TIME:23:27:07.554511+08
CURRENT_TIMESTAMP:2018-11-05 23:27:30.620134+08
CURRENT_TIME (precision):秒位的小数精度
CURRENT_TIMESTAMP (precision):秒位的小数精度
LOCALTIME:23:28:40.586968,去除时区信息
LOCALTIMESTAMP:2018-11-05 23:29:20.317981,去除时区信息
LOCALTIME (precision):秒位的小数精度
LOCALTIMESTAMP (precision):秒位的小数精度

设置缺省值为当前时间:

alter table schema名.table名 alter column字段名 set default LOCALTIMESTAMP (1);

2.2更新记录的时间戳;

            触发函数:

create or replace function schema名.函数名() returns trigger as
    $$
    begin
        new.字段名= current_timestamp;
        return new;
    end
    $$
    language plpgsql;

             作用table:

create trigger 触发器名 before update on 表名 for each row execute procedure schema名.函数名();

             作用场景:

update table名 set 字段='内容' where 字段 = 内容;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值