java - 如何将 FK 约束放在 mysql 中的两个表上,一个表是 InnoDB,另一个是 MyISAM

标签 java mysql mysql-error-1005

原因:liquibase.exception.JDBCException:

Error executing SQL ALTER TABLE `User` ADD CONSTRAINT `fk_user_location` FOREIGN KEY (`location_id`) REFERENCES `Location`(`id`) ON DELETE CASCADE:
          Caused By: Error executing SQL ALTER TABLE `UserLocation` ADD CONSTRAINT `fk_user_location_location_id` FOREIGN KEY (`location_id`) REFERENCES `Location`(`id`) ON DELETE CASCADE:
          Caused By: Can't create table 'usiapp_db.#sql-399a_177a7' (errno: 150)

最佳答案

你不能。如果要为其创建外键或从中创建外键,则必须将 MyISAM 表转换为 InnoDB:

ALTER TABLE MyIsamTable ENGINE=InnoDB;

您可以动态地执行此操作,而无需关闭数据库。

关于java - 如何将 FK 约束放在 mysql 中的两个表上,一个表是 InnoDB,另一个是 MyISAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017660/

相关文章:

java - 如何在构造函数中调用类

Php在数据库中管理每个用户的多个 session

javascript - 在 node.js mysql 查询中,检查是否没有找到匹配项

Java数组,NullPointerException?

java - float 1.0E-12 F 如何转换为二进制代码?

java - Raytracer,计算观察光线(Java)

php - 如何创建包含各种排序规则的 MySQL 表?

mysql - 导入 magento 数据库时遇到问题

mySql 错误号 : 150 Create table statement inside

MySQL建表错误