问题描述
我正在 Postgresql 11.0 中创建下表
create table rshar.drug_source as
select * from dblink('dbname=aa port=aa host=aa user=read password=aa','
select
*
from
prod.drug_source
;
'
) as x ( id BIGINT,db CHaraCTER varying,original_id CHaraCTER varying,mapped_by CHaraCTER varying,dataset_version_id BIGINT,CONSTRAINT drugsource_fk1 FOREIGN KEY(id,dataset_version_id) REFERENCES drug_tbl (id,dataset_version_id)
;
我收到以下错误:
[Code: 0,sql State: 42601] ERROR: Syntax error at or near "CONSTRAINT"
Position: 547 [Script position: 4147 - 4157]
我不知道“CONSTRAINT”附近的语法错误是什么
非常感谢任何帮助。
解决方法
您不能创建带有约束的表并将其填充到单个 SQL 语句中。分两步做:
CREATE TABLE rshar.drug_source (
col1 type1,...
CONSTRAINT ...
);
INSERT INTO rshar.drug_source
SELECT * from dblink(...);