添加外键关系mysql(5.5.29)给出ERROR 1050:

时间:2013-01-23 08:31:17

标签: php mysql

添加外键关系时,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

1 个答案:

答案 0 :(得分:0)

检查以确保它们属于同一类型。Schedule的类型为utf8。检查yellowbikes类型为default的是谁?!?!如果是,请将其更改为utf8

修改

您还可以检查MySql DB是否为MyISAM。如果是这样,请将其转移到InnoDB,因为如果您需要数据库来强制执行外键约束,或者您需要数据库来处理由DML操作集所做的更改作为单个工作单元,那么您将选择InnoDB而不是MyISAM,因为这些功能没有MyISAM引擎。