AUTO_INCREMENT
我在创建表格时忘记包含,所以我试图像这样改变它
ALTER TABLE roles CHANGE COLUMN id id int NOT NULL AUTO_INCREMENT;
结果:
Error Code: 1832. Cannot change column 'role_id': used in a foreign key constraint 'user_role_ibfk_2'
事实上,我之前尝试过在我的表中添加外键约束user_role
,但显然我做错了,因为 Workbench 告诉我user_role
. user_role
是一个@JoinTable
如果我点击Refresh
,我会得到这个错误
Unhandled exception: invalid column
constraint_ name for resultset
Check the log for more details
我知道的日志(目录中的那些AppData\Local\JetBrains\IntelliJIdea2022.3\database-log
)没有任何最近的日志
我该如何解决这个问题并role(id)
在不破坏表格的情况下为我的列提供增量?
最简单的解决方案是暂时禁用外键检查作为会话变量。这样做是安全的,因为它不会影响其他会话,而且您知道您不会做任何事情来扰乱引用。
演示:
我可以重现你得到的错误。我
modify column
也检查了以防万一有效,但没有。暂时禁用外键检查可以允许以下操作:
现在表的 PK 具有您想要的 AUTO_INCREMENT 选项。