如何解决具有自动递增12位整数的postgres列
是否可以定义一列自动递增的列,该列是模式级别的12位数字?
因此该序列将000000000000,000000000001,...
解决方法
您可以创建一个指定最小,最大,起始值的序列。然后将该序列指定为默认序列。您评论说,您需要的是“ EAN-13,但第一个数字是常数”,因此,我认为您实际上需要一个以固定数字开头的13位数字。您可以使用该固定数字作为序列的前导值。像这样(假设常量的第一位数字是5):
create sequence barcode_seq
increment 1
minvalue 5000000000000
maxvalue 5999999999999
start 5000000000000;
虽然序列通常被用作表键,但这不是必需的。无论分配条形码的位置如何,都将以上序列用作默认值。 See fiddle。
,您要寻找the serial
datatype吗?这是一个自动递增的整数。范围从1
到2147483647
,小于12位。如果您需要更大的东西,可以切换到bigserial
,最高到9223372036854775807
。
create table mytable (
id serial,val text
);
insert into mytable (val) values ('foo'),('bar');
select * from mytable;
id | val -: | :-- 1 | foo 2 | bar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。