我使用MySQL的工作台在表中添加一个外键,但有些奇怪的错误发生了,这是SQL语句:不能在mysql中添加外键?
ALTER TABLE `tansung`.`Declaration` ADD COLUMN `goodsId` INT(11) NOT NULL AFTER `declarationId` ,
ADD CONSTRAINT `goodsId`
FOREIGN KEY (`goodsId`)
REFERENCES `tansung`.`Goods` (`goodsId`)
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `goodsId` (`goodsId` ASC) ;
当我点击应用,惊喜出来!
ERROR 1005: Can't create table 'tansung.#sql-1b10_1' (errno: 150)
SQL Statement:
ALTER TABLE `tansung`.`Declaration` ADD COLUMN `goodsId` INT(11) NOT NULL AFTER `declarationId` ,
ADD CONSTRAINT `goodsId`
FOREIGN KEY (`goodsId`)
REFERENCES `tansung`.`Goods` (`goodsId`)
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `goodsId` (`goodsId` ASC)
ERROR: Error when running failback script. Details follow.
ERROR 1050: Table 'Declaration' already exists
SQL Statement:
CREATE TABLE `Declaration` (
`declarationId` int(11) NOT NULL,
PRIMARY KEY (`declarationId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我无法找出逻辑上的任何错误,甚至不明白错误,请给我一个帮助。
该错误似乎不言自明;您正尝试创建一个名为'Declaration'的表,该表已存在... – 2011-04-22 17:27:23
确保您没有在窗口中运行所有SQL代码。看起来您正在运行ALTER TABLE代码,然后立即执行CREATE TABLE代码...确保您只运行ALTER TABLE代码以防止出现此错误。 – acconrad 2011-04-22 17:30:35
@Brian Driscoll真正的错误出现在代码块的顶部'ERROR 1005:Can not create table'tansung。#sql-1b10_1'(errno:150)' – 2011-04-22 17:58:06