我创建了一个名为“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提前......
答案 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中删除它并再试一次