1,timestamp 有分时区和无时区 (减少使用),8 个字节, 包含日期和时间, 范围是: 公元前 4713 - 公元 294276. 底层存储的是时间戳, 这对任何地区的都一样, 而具体时间显示则可从数据库层面设置时区, 加字段设置时区, 取数据转化时区, 取出后在代码层转化时区.
2, 自增 ID 需要设置 sequence, 它没有 MySQL 那种自增功能.
- CREATE SEQUENCE gys.mytable_myid_seq
- INCREMENT 1
- START 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 2;
- alter table gys.mytable alter column myid set default nextval('gys.mytable_myid_seq');
序列函数:
函数 返回类型 描述
nextval(regclass) bigint 递增序列对象到它的下一个数值并且返回该值. 这个动作是自动完成的. 即使多个会话并发运行 nextval, 每个进程也会安全地收到一个唯一的序列值.
currval(regclass) bigint 在当前会话中返回最近一次 nextval 抓到的该序列的数值.(如果在本会话中从未在该序列上调用过 nextval, 那么会报告一个错误.) 请注意因为此函数返回一个会话范围的数值, 而且也能给出一个可预计的结果, 因此可以用于判断其它会话是否执行过 nextval.
lastval() bigint 返回当前会话里最近一次 nextval 返回的数值. 这个函数等效于 currval, 只是它不用序列名为参数, 它抓取当前会话里面最近一次 nextval 使用的序列. 如果当前会话还没有调用过 nextval, 那么调用 lastval 将会报错.
setval(regclass, bigint) bigint 重置序列对象的计数器数值. 设置序列的 last_value 字段为指定数值并且将其 is_called 字段设置为 true, 表示下一次 nextval 将在返回数值之前递增该序列.
setval(regclass, bigint, boolean) bigint 重置序列对象的计数器数值. 功能等同于上面的 setval 函数, 只是 is_called 可以设置为 true 或 false. 如果将其设置为 false, 那么下一次 nextval 将返回该数值, 随后的 nextval 才开始递增该序列.
来源: http://www.bubuko.com/infodetail-3023975.html