SHR*_*ale 3 postgresql sequence
我需要创建字母数字序列示例:我有 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;
Run Code Online (Sandbox Code Playgroud)
要实现您想要的,您只需要定义自定义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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3078 次 |
| 最近记录: |