gpt4 book ai didi

java - 删除MYSQL中的僵尸外键

转载 作者:行者123 更新时间:2023-12-01 18:18:34 27 4
gpt4 key购买 nike

我正在尝试通过使用 JPA 和 Eclipse-Link 生成来逐步构建 MySQL 数据库。在此过程中,我更改了一些关系 @ManyToOne@OneToOne 等。

我现在遇到的情况是,我有一些虚假的外键:表不存在,但引用的表仍然存在。我认为原始表是由 EclipseLink 生成的交叉引用表,但已不再存在。

问题是,我无法删除这些引用的表。我收到这样的错误:

mysql> drop table PRODUCTDO;
ERROR 3730 (HY000): Cannot drop table 'PRODUCTDO' referenced by a foreign key constraint 'PRODUCTDO_DISTRIBUTIONCENTERPRODUCTDO_ProductDo_ID' on table 'PRODUCTDO_DISTRIBUTIONCENTERPRODUCTDO'.

如果我运行:

SET foreign_key_checks = 0;

然后我可以删除该表,但约束仍然存在。即使我删除数据库并重新创建它,约束仍然存在:

mysql> SELECT    TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM   INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = 'SCO';
+---------------------------------------+------------------------------+----------------------------------------------------+-----------------------------+------------------------+
| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
+---------------------------------------+------------------------------+----------------------------------------------------+-----------------------------+------------------------+
| PRODUCTDO_DISTRIBUTIONCENTERPRODUCTDO | ProductDo_ID | PRODUCTDO_DISTRIBUTIONCENTERPRODUCTDO_ProductDo_ID | PRODUCTDO | ID |
| PRODUCTDO_DISTRIBUTIONCENTERPRODUCTDO | distributionCenterProduct_ID | PRDCTDDSTRBTIONCENTERPRODUCTDOdstrbtnCntrProductID | DISTRIBUTIONCENTERPRODUCTDO | ID |
+---------------------------------------+------------------------------+----------------------------------------------------+-----------------------------+------------------------+
2 rows in set (0.01 sec)

如何摆脱这些僵尸约束?

最佳答案

最后,我必须重新创建表和外键,然后才能将其删除。

关于java - 删除MYSQL中的僵尸外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60320636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com