mysql - SQL错误1215无法添加外键

标签 mysql mysql-workbench innodb

我无法向我的表添加简单的外键。我以前能够添加外键,但只能是 INT 或 BIGINT 类型。我正在尝试将其设为 VARCHAR 类型,但收到 1215 错误,说明无法添加外键约束。

导致失败的命令:

 ALTER TABLE `TradingAccount` 
 ADD CONSTRAINT `email`
   FOREIGN KEY (`owner_id`)
   REFERENCES `User` (`email`)
   ON DELETE NO ACTION
   ON UPDATE NO ACTION;

owner_id 和 email 的数据类型均为 VARCHAR(255)。

我正在使用 MySQL Workbench,感觉存在一些配置错误,不允许我使用 varchar 进行外键约束?我是否需要设置 mysqlworkbench 来使用 INNODB 还是默认设置。

任何帮助都会很棒,干杯。

最佳答案

我猜测 TradingAccount.owner_id 和/或 OwnerMaster.owner_id 与 TradingAccount.owner_id 和 OwnerMaster.owner_id 的数据类型不完全相同。

关于mysql - SQL错误1215无法添加外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45979157/

相关文章:

mysql - 选择唯一数据

php - mysql:从日期时间显示日期

mysql - MySQL InnoDB 引擎是否自动对数据库触发器进行排队?

mysql - InnoDB 与 MyISAM 插入查询时间

java - 使用 Java 中的 sql 查询结果将数据加载到组合对象中

php - 从刚刚创建的行获取自动递增的整数?

mysql - 运行 MySQL 脚本 - 零知识

mysql - 组合两个查询时多次重复相同的值

mysql - MySQL 中用户定义变量的奇怪行为

mysql - 如何在没有 MySQL 客户端的情况下直接访问 MySQL InnoDB 索引值?