Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
协助解释MySQL指令:“参考资料”;为了避免在尝试删除外键时出现此错误,请使用约束名称而不是…“;_Mysql_Sql - Fatal编程技术网

协助解释MySQL指令:“参考资料”;为了避免在尝试删除外键时出现此错误,请使用约束名称而不是…“;

协助解释MySQL指令:“参考资料”;为了避免在尝试删除外键时出现此错误,请使用约束名称而不是…“;,mysql,sql,Mysql,Sql,这是引自。老实说,我不确定约束名称是什么。有人能给出一个使用约束而不是列名的示例吗?可以在创建表时使用CREATE table语句指定外键,或者稍后使用ALTER table语句指定外键 请参见下面这些命令的简化语法: 创建表格: 更改表格: 可更改的tbl_名称 CREATE TABLE tbl_name( ..... [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_

这是引自。老实说,我不确定约束名称是什么。有人能给出一个使用约束而不是列名的示例吗?

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

创建表格:

更改表格: 可更改的tbl_名称

CREATE TABLE tbl_name(
  .....
  [CONSTRAINT [symbol]] FOREIGN KEY
      [index_name] (index_col_name,...) reference_definition
  .....
)
在这两种语法中都有可选的
CONSTRAINT[symbol]
子句。此子句用于为约束指定显式名称。在SQL中,外键是一个约束。

必须使用以下语法才能删除外键:
删除外键:

其中,
fk_符号
是创建表或更改表添加命令中使用的约束的必需名称。

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

您可以通过查询
信息\u架构表\u约束检查约束的名称
视图。

例如:

ALTER TABLE table_name
DROP FOREIGN KEY fk_symbol
在上面的示例中,我没有明确给外键约束指定名称,MySql为这个外键指定了一个名称 我可以使用此名称从表中删除(删除)外键:

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 
ALTER TABLE table_name
DROP FOREIGN KEY fk_symbol
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 
ALTER TABLE bbb
DROP FOREIGN KEY bbb_ibfk_1 ;