gpt4 book ai didi

mysql - 协助解释MySQL指令: "To avoid getting this error while trying to drop a foreign key, use the constraint name rather than ..."

转载 作者:行者123 更新时间:2023-11-29 00:14:31 25 4
gpt4 key购买 nike

ERROR 1025 (HY000): Error on rename of './MyDB/MyTable' to './MyDB/#sql2-e4a-ca3e' (errno: 152)

To avoid getting this error while trying to drop a foreign key, use the **constraint name** rather than the **column name** of the foreign key.

Summary:

99.999% of the time errors like this have nothing to do with the ability to create a temporary file and much to do with foreign key issues.

引自here .老实说,我不确定约束名称是什么。有人可以提供一个使用约束而不是列名的示例吗?

最佳答案

可以在创建表时使用 CREATE TABLE 语句或稍后使用 ALTER TABLE 语句指定外键。
请参阅下面这些命令的简化语法:

创建表: http://dev.mysql.com/doc/refman/5.7/en/create-table.html

CREATE TABLE tbl_name(
.....
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name,...) reference_definition
.....
)

修改表: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html改变 ABLE tbl_name

ADD [CONSTRAINT [symbol]]
FOREIGN KEY [index_name] (index_col_name,...)
reference_definition

在这两种语法中都有可选的 CONSTRAINT [symbol] 子句。该子句用于为约束提供明确的名称。在 SQL 中,外键是约束

必须使用以下语法才能删除外键:
删除外键: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

ALTER TABLE table_name
DROP FOREIGN KEY fk_symbol

其中 fk_symbol 是 CREATE TABLE 或 ALTER TABLE ADD 命令中使用的约束的必需名称

如果您没有明确指定约束的名称,MySql 会为该约束生成它自己的内部名称。

您可以通过查询INFORMATION_SCHEMA TABLE_CONSTRAINTS View 来检查约束的名称。

例如:

create table aaa(
x int primary key
);

create table bbb(
y int,
constraint foreign key(y) references aaa(x)
);

select table_name, constraint_name, constraint_type
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE Table_name = 'bbb'
;
+ --------------- + -------------------- + -------------------- +
| table_name | constraint_name | constraint_type |
+ --------------- + -------------------- + -------------------- +
| bbb | bbb_ibfk_1 | FOREIGN KEY |
+ --------------- + -------------------- + -------------------- +
1 rows

在上面的例子中,我没有明确地给外键约束一个名字,MySql 给这个外键分配了一个名字bbb_ibfk_1

我可以使用这个名称从表中删除(删除)外键:

ALTER TABLE bbb
DROP FOREIGN KEY bbb_ibfk_1 ;

关于mysql - 协助解释MySQL指令: "To avoid getting this error while trying to drop a foreign key, use the constraint name rather than ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23475126/

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