正如标题所示,我想要一个唯一的ID作为主键,但是需要多个模式。我知道UUID,但它太贵了。
有没有办法围绕连续剧进行操作?
答案 0 :(得分:1)
您可以创建一个全局序列,并在表格中使用该序列,而不是serial
列创建的自动序列。
create schema global;
create schema s1;
create schema s2;
create sequence global.unique_id;
create table s1.t1
(
id integer default nextval('global.unique_id') primary key
);
create table s2.t1
(
id integer default nextval('global.unique_id') primary key
);
与serial
列的区别在于,序列unique_id
不会“知道”id
列使用它。如果丢弃了相应的列(或表),则会自动删除“序列序列”,这不是您想要的全局序列。
但有一个缺点:您无法确保手动插入这两个表中的重复值。如果要确保序列始终用于插入值,则可以创建始终从序列中提取值的触发器。