这不是重复,因为我看到所有其他帖子,但没有找到这个特定案例的答案。我的步骤:
创建了两个表,并将表2中的外键添加到表1
删除tbale 1,然后删除表2
更改了表1中主键字段的名称(及其类型)并重新创建了
在添加外键时,我收到了错误
然而,我然后运行了SHOW CREATE TABLE Table2
(和Table1),并且没有一个显示我要删除的外键名称!
没有该名称,我无法删除外键(我添加了它而没有指定名称或者现在没有显示任何名称)。我该怎么办?
答案 0 :(得分:0)
您必须知道外键的名称。如果它是在没有名称的情况下创建的,那么将自动生成名称。
尝试这些查询以获取FK名称:
SELECT
constraint_name
FROM
information_schema.REFERENTIAL_CONSTRAINTS
WHERE
constraint_schema = <'db_name'> AND table_name = <'table_name'>;
SELECT *
FROM
information_schema.KEY_COLUMN_USAGE
WHERE
constraint_schema = <'db_name'> AND table_name = <'table_name'> AND
referenced_table_name IS NOT NULL;
答案 1 :(得分:0)
在第二步中,您是否更改了外键字段的列类型?必须与主键相同。
另外,您必须更新用于添加新列名的外键约束的SQL语句。