0

在添加外键关系时,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:表 'schedule' 已存在

SQL 语句:

CREATE TABLE `schedule` (
   `bikeid` int(11) NOT NULL,
   `bike_number` varchar(24) NOT NULL,
   PRIMARY KEY (`bikeid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
4

1 回答 1

0

检查以确保它们都是同一类型。Schedule有类型utf8。检查 whthryellowbikes的类型default?!?!如果是这样,请将其更改为utf8

编辑:

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

于 2013-01-23T08:42:20.207 回答