前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Liquibase异常 mysql数据库 Cannot add foreign key constraint

Liquibase异常 mysql数据库 Cannot add foreign key constraint

作者头像
我是李超人
发布2020-08-21 01:14:48
1.2K0
发布2020-08-21 01:14:48
举报
文章被收录于专栏:大数据入坑指南

Caused by: java.sql.SQLException: Cannot add foreign key constraint

查看DATABASECHANGELOG 日志 使用h2数据库时,liquibase是能够正确创建表和外键以及索引,但是换到mysql的时候,无法成功创建外键。手动执行添加外键也无法成功

手动执行sql语句

代码语言:javascript
复制
ALTER TABLE datasync_monitor.table_monitor_strategy ADD CONSTRAINT fk_account_table FOREIGN KEY (account_monitor_strategy_id) REFERENCES datasync_monitor.account_monitor_strategy (id)

报错 错误代码: 1215 Cannot add foreign key constraint

既然liquibase能够在h2上成功创建表以及外键,但是在mysql上创建不了,而且表存在手动也不能添加外键,估计就是mysql的原因了。

Mysql添加不了外键原因有三: (1)外键对应的字段数据类型不一致 (2)两张表的存储引擎不一致 (3)设置外键时“删除时”设置为“SET NULL” 一个个排除,发现table_monitor_strategy这张表对应account_monitor_strategy这张表的外键字段是设计成varchar类型的,而account_monitor_strategy中的id是bigint型的,所以才会出现无法创建外键的问题。 这个问题可能是mysql特有的,在h2上依然能够成功创建外键。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/08/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档