PostgreSQL外表插入违反主键约束10

Say*_*akh 5 postgresql primary-key postgresql-9.5

我有两个本地数据库,其中一个我创建了一个引用第二个数据库中的表的外部表。当我想在外部表中插入时,它会从 1 开始插入主键,尽管当我在实际表中插入时,它会从输入的最后一个值继续。有什么办法,所以如果我插入实际或外表,它会按主键的顺序排列吗?

CREATE TABLE Actual_Table (
  id   serial   PRIMARY KEY
  name varchar
);
Run Code Online (Sandbox Code Playgroud)

然后我在实际表中插入一些数据

INSERT INTO Actual_Table (name) VALUES
  ('AHMAD'),
  ('MAHMOOD');
Run Code Online (Sandbox Code Playgroud)

然后我在第二个数据库中创建以下外部表

CREATE FOREIGN TABLE Foreign_Table (
  id serial,
  name varchar
) server some_server options(schema_name 'public', table_name 'Actual_Table')
Run Code Online (Sandbox Code Playgroud)

然后当我使用以下插入语句用户插入外表时,我收到一个违反主键约束的错误

INSERT INTO Foreign_Table (name) VALUES ('John');
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

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)
Run Code Online (Sandbox Code Playgroud)

小智 2

您可以忽略Foreign_Table脚本中的ID字段并尝试插入吗?它应该使用外部表中的当前序列值。

{
CREATE FOREIGN TABLE Foreign_Table (name varchar) server 
    some_server options(schema_name 'public', table_name 'Actual_Table')
}
Run Code Online (Sandbox Code Playgroud)