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 字段 = 内容;