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)