分配外键时出现问题

时间:2012-12-17 12:10:11

标签: php mysql

我创建了一个名为“Projects”的表。我想在此表中创建一个外键“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 - 表定义不正确;只能有一个自动列,必须将其定义为键

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

Thnx提前......

4 个答案:

答案 0 :(得分: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

执行此操作

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:0)

每个表只能有一个包含AUTO_INCREMENT的列。从c_id中删除它并再试一次