-6

我创建了一个名为“项目”的表。我想在此表中创建一个外键“c_id”,但我面临以下错误消息。

错误信息如下。

SQL查询:

CREATE TABLE `Projects` (
`p_id` INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`project_name` VARCHAR( 500 ) NOT NULL ,
`c_id` INT( 150 ) NOT NULL AUTO_INCREMENT ,
INDEX ( `c_id` )
) ENGINE = MYISAM

MySQL 说:文档

#1075 - 表定义不正确;只能有一个自动列,并且必须将其定义为键

背后的原因是什么?有什么帮助吗?

提前谢谢....

4

4 回答 4

4

你有两个auto_increment。试试这个:

CREATE TABLE Projects( 
    p_id INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    project_name VARCHAR( 500 ) NOT NULL, 
    c_id INT( 150 ) NOT NULL, 
    INDEX ( c_id ) 
) ENGINE = MYISAM 

AUTO_INCREMENT只为 p_id 做

于 2012-12-17T12:11:58.330 回答
1

利用

CREATE TABLE Projects ( p_id INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , project_name VARCHAR( 500 ) NOT NULL , c_id INT( 150 ) NOT NULL  , INDEX ( c_id ) ) ENGINE = MYISAM

应该只有一个 AUTO_INCREMENT

于 2012-12-17T12:12:35.583 回答
0

尝试这个。您必须使用 InnDB 以及只有 1 AUTO INCREMENT

CREATE TABLE Projects ( p_id INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , project_name VARCHAR( 500 ) NOT NULL , c_id INT( 150 ) NOT NULL , INDEX ( c_id ) ) ENGINE = InnoDB
于 2012-12-17T12:12:22.760 回答
0

每个表只能有一个带有 AUTO_INCREMENT 的列。从 c_id 中删除它并重试

于 2012-12-17T12:12:26.847 回答