首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在Postgres中多次指定列

错误:在Postgres中多次指定列
EN

Stack Overflow用户
提问于 2015-08-27 06:59:58
回答 1查看 8.5K关注 0票数 1

我是Postgres的新手,通过c#代码可以创建下表:

代码语言:javascript
复制
string create = "CREATE TABLE " + articles
                    + "("
                       + " SEQU_NK SERIAL PRIMARY KEY,"
                       + " ARTICLE_NK bigint   NOT NULL,"
                       + " DEPOT_NK  bigint  NOT NULL  ,"
                       + " EXPED_NK  bigint NOT NULL,"
                       + " CLIENT_NK  bigint  NOT NULL,"
                       + " SIGNE_TRANSP character varying(2) NOT NULL,"
                       + " NB_PLIS_TOTAL bigint DEFAULT 0  ,"
                       + " DH_PREM_ETIQUETTE timestamp  DEFAULT '0001-01-01 00:00:00',"
                       + " DATE_DEPOT_ARTICLE character varying(10) DEFAULT NULL,"                    
                       + " ARTICLE_NK character varying(10)  references articles(ARTICLE_NK),"
                       + " DEPOT_NK character varying(10)  references depots(DEPOT_NK),"
                       + " EXPED_NK character varying(10)  references expeds(EXPED_NK),"
                       + " CLIENT_NK character varying(10)  references clients(CLIENT_NK),"
                    + ") ";

还尝试在PGAdmin3上编写查询:

代码语言:javascript
复制
CREATE TABLE articles( SEQU_NK SERIAL PRIMARY KEY,
                       ARTICLE_NK bigint   NOT NULL,
                        DEPOT_NK  bigint  NOT NULL  ,
                        EXPED_NK  bigint NOT NULL,
                       CLIENT_NK  bigint  NOT NULL,
                        SIGNE_TRANSP character varying(2) NOT NULL,
                        NB_PLIS_TOTAL bigint DEFAULT 0  , 
                        DH_PREM_ETIQUETTE timestamp  DEFAULT '0001-01-01 00:00:00',                      
                        ARTICLE_NK character varying(10)  references articles(ARTICLE_NK),
                        DEPOT_NK character varying(10)  references depots(DEPOT_NK),
                        EXPED_NK character varying(10)  references expeds(EXPED_NK),
                       CLIENT_NK character varying(10)  references clients(CLIENT_NK)) ;

所获得的误差是:

代码语言:javascript
复制
ERROR:  column "article_nk" specified more than once
********** Error **********

ERROR: column "article_nk" specified more than once
SQL state: 42701

如何修复此错误,因为它是外键?当我将查询从Mysql更改为Postgres时?

类似的Mysql查询是(我正在翻译到Postgres是):

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `articles` (
  `SEQU_NK` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Auto: Numero sequence',
  `ARTICLE_NK` int(11) NOT NULL,
  `DEPOT_NK` int(11) NOT NULL DEFAULT '0',
  `EXPED_NK` int(11) NOT NULL,
  `CLIENT_NK` int(11) NOT NULL,
  `SIGNE_TRANSP` varchar(2) NOT NULL DEFAULT '',
  `NB_PLIS_TOTAL` int(11) DEFAULT '0',
  `DH_PREM_ETIQUETTE` datetime DEFAULT '0001-01-01 00:00:00',
  PRIMARY KEY (`SEQU_NK`),
  KEY `ARTICLE_NK` (`ARTICLE_NK`),
  KEY `DEPOT_NK` (`DEPOT_NK`),
  KEY `EXPED_NK` (`EXPED_NK`),
  KEY `CLIENT_NK` (`CLIENT_NK`),

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 07:08:40

你有专栏:

ARTICLE_NK bigint NOT NULL,

ARTICLE_NK character varying(10) references articles(ARTICLE_NK)

postgres将第二解释为一列。不是作为钥匙..。

您应该使用以下语法:

CONSTRAINT ARTICLE_NK_FK FOREIGN KEY (ARTICLE_NK) REFERENCES articles (ARTICLE_NK)

用一些示例创建表手册

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32242670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档