我需要创建字母数字序列示例:我有2个表,分别是“城市”和“学生”。我希望城市的序列像“ city1,city2,city3 ....”,对于学生来说像“ stud1,stud2,stud3”等
谢谢。
Asequence
不能为字母数字。实际上,您甚至不能在PostgreSQL中限制使用较小的数字类型:它始终是bigint
。
但这sequence
只是创建列的一部分,就像所谓的自动增量一样。
PostgreSQL的伪类型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;
为了实现您想要的,您只需要定义自定义DEFAULT
表达式,例如:
CREATE SEQUENCE city_city_id_seq;
CREATE TABLE city (
city_id text NOT NULL DEFAULT ('city' || nextval('city_city_id_seq'))
);
ALTER SEQUENCE city_city_id_seq OWNED BY city.city_id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句