通过MySQL Workbench更新外键约束后设置未永久保存问题
MySQL Workbench外键约束修改无法保存的解决方法
- 确认执行修改操作:在可视化界面改完外键选项后,别只关闭标签页,要点击界面下方的Apply按钮,在弹出的预览窗口确认SQL语句正确,再点Apply执行,最后点Finish完成。很多人容易漏掉这一步,误以为保存标签就生效了。
- 检查关联列的NULL属性:如果外键关联的列本身设置为
NOT NULL,那ON DELETE SET NULL或ON UPDATE SET NULL是不合法的,MySQL会拒绝执行,Workbench也不会保存这个设置。先确保关联列允许NULL(在表结构的列属性里取消NOT NULL的勾选)。 - 刷新表元数据:修改完成后,在左侧导航栏的表上右键选择Refresh,或者点击工具栏的刷新按钮,避免Workbench显示缓存的旧结构。
- 直接用SQL语句修改(绕过可视化bug):如果以上步骤都不行,可能是Workbench可视化工具的小问题,直接执行SQL语句更可靠:
执行完后刷新表结构就能看到修改生效了。ALTER TABLE 你的表名 DROP FOREIGN KEY 外键约束名, ADD CONSTRAINT 外键约束名 FOREIGN KEY (外键列名) REFERENCES 关联表名(关联列名) ON DELETE SET NULL ON UPDATE SET NULL;
内容的提问来源于stack exchange,提问作者Yeo Bryan
相关产品推荐
相关产品推荐

