添加外键关系时,MySQL会给ERROR 1050
:
我有2个表并尝试与其他表给出外键关系,但它给出了以下错误。
错误1005:无法创建表'yellowbikes。#sql-1e8_82'(错误号:121)
SQL语句:
ALTER TABLE `yellowbikes`.`schedule`
ADD CONSTRAINT `bike_number`
FOREIGN KEY (`bike_number` )
REFERENCES `yellowbikes`.`bike` (`bike_number` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `bike_number_idx` (`bike_number` ASC)
错误:运行故障回复脚本时出错。详情如下。
错误1050:表'计划'已存在
SQL语句:
CREATE TABLE `schedule` (
`bikeid` int(11) NOT NULL,
`bike_number` varchar(24) NOT NULL,
PRIMARY KEY (`bikeid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
答案 0 :(得分:0)
检查以确保它们属于同一类型。Schedule
的类型为utf8
。检查yellowbikes
类型为default
的是谁?!?!如果是,请将其更改为utf8
修改强>
您还可以检查MySql DB是否为MyISAM。如果是这样,请将其转移到InnoDB,因为如果您需要数据库来强制执行外键约束,或者您需要数据库来处理由DML操作集所做的更改作为单个工作单元,那么您将选择InnoDB而不是MyISAM,因为这些功能没有MyISAM引擎。