Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误:在Postgres中多次指定列_Mysql_Sql_Database_Postgresql_Postgresql 8.4 - Fatal编程技术网

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

Mysql 错误:在Postgres中多次指定列,mysql,sql,database,postgresql,postgresql-8.4,Mysql,Sql,Database,Postgresql,Postgresql 8.4,我是一名博士后新手,我需要通过c#代码创建下表: 还尝试在PGAdmin3上写入查询: CREATE TABLE articles( SEQU_NK SERIAL PRIMARY KEY, ARTICLE_NK bigint NOT NULL, DEPOT_NK bigint NOT NULL , EXPED_NK bigint NOT NUL

我是一名博士后新手,我需要通过c#代码创建下表:

还尝试在PGAdmin3上写入查询:

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)) ;
得到的误差为:

ERROR:  column "article_nk" specified more than once
********** Error **********

ERROR: column "article_nk" specified more than once
SQL state: 42701
如何修复此错误,因为它是外键?当我将查询从Mysql更改为Postgres时

等效的Mysql查询是(我翻译成Postgres的是):

您有以下列:

ARTICLE\u NK bigint NOT NULL,

ARTICLE\u NK字符变化(10)引用ARTICLE(ARTICLE\u NK)

postgres将second解释为一列。不是作为一把钥匙

您应该改为使用以下语法:

CONSTRAINT ARTICLE\u NK\FK外键(ARTICLE\u NK)
参考文章(文章编号)

您有以下列:

ARTICLE\u NK bigint NOT NULL,

ARTICLE\u NK字符变化(10)引用ARTICLE(ARTICLE\u NK)

postgres将second解释为一列。不是作为一把钥匙

您应该改为使用以下语法:

CONSTRAINT ARTICLE\u NK\FK外键(ARTICLE\u NK)
参考文章(文章编号)


问题在于,您将
ARTICLE\u NK
声明为bigint,然后声明为
字符变化(10)
。使用两个不同的名称我假设他想要
KEY
ARTICLE\u NK`(
ARTICLE\u NK
),`而不是列……问题是您将
ARTICLE\u NK
声明为bigint,然后声明为
字符变化(10)
。使用两个不同的名称我假设他想要
KEY
ARTICLE\unk`(
ARTICLE\unk
),而不是列…为什么你将ARTICLE\unk更改为ARTICLE\unk\FK..如果我这样做可以吗“约束ARTICLE\unk外键(ARTICLE\unk)引用ARTICLE(ARTICLE\unk)”命名约定-最好对每个对象使用唯一的名称,但我被要求对MySql中提供给我的模式进行PostGRE转换(自动生成)。因此,我担心如果命名约定改变了列名不匹配,那么它也不会在MYSQL代码
KEY
ARTICLE\u NK`(
ARTICLE\u NK
)`中包含字符变化(10)数据类型,而不是coulmn名称。它不参与DML语句,因此FK名称并不重要为什么将ARTICLE\u NK更改为ARTICLE\u NK\u FK..如果我执行“约束ARTICLE\u NK外键(ARTICLE\u NK)引用articles(ARTICLE\u NK)”是否可以命名约定-最好对每个对象使用唯一的名称,但我被要求对MySql中提供给我的模式进行PostGRE转换(自动生成)。因此,我担心如果命名约定改变了列名不匹配,那么它也不会在MYSQL代码
KEY
ARTICLE\u NK`(
ARTICLE\u NK
)`中包含字符变化(10)数据类型,而不是coulmn名称。它不参与DML语句,因此FK名称无关紧要
ERROR:  column "article_nk" specified more than once
********** Error **********

ERROR: column "article_nk" specified more than once
SQL state: 42701
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 ;