我在其中一个中有两个本地数据库我创建了一个外部表,它引用了第二个数据库中的一个表。当我想在外部表中插入时,它会从 1 开始插入主键,尽管当我在实际表中插入时,它会从输入的最后一个值继续。有什么办法可以让我在实际表或外部表中插入主键序列?
CREATE TABLE Actual_Table (
id serial PRIMARY KEY
name varchar
);
然后我在实际表中插入一些数据
INSERT INTO Actual_Table (name) VALUES
('AHMAD'),
('MAHMOOD');
然后我在第二个数据库中创建以下外部表
CREATE FOREIGN TABLE Foreign_Table (
id serial,
name varchar
) server some_server options(schema_name 'public', table_name 'Actual_Table')
然后当我使用以下插入语句在外部表中插入用户时,我收到一个违反主键约束的错误
INSERT INTO Foreign_Table (name) VALUES ('John');
这是我得到的错误
ERROR: duplicate key value violates unique constraint "to_copy_pkey"
DETAIL: Key (id)=(2) already exists.
CONTEXT: Remote SQL command: INSERT INTO public.to_copy(id, name) VALUES ($1, $2)
您可以忽略 Foreign_Table 脚本中的 ID 字段并尝试插入吗?它应该使用外部表中的当前序列值。