微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 PostgreSQL 11.0 中的表中创建外键时出错

如何解决在 PostgreSQL 11.0 中的表中创建外键时出错

我正在 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(...);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。