mysql 外键问题

mysql查看外键的语句

select constraint_name from information_schema.key_column_usage   where table_schema='mydb';
其中mydb为你的mysql数据库名称,查询的结果是你这个数据库的所有主外键约束的名称,或者这样写
select * from information_schema.key_column_usage   where table_schema='mydb';


mysql设置外键

ALTER TABLE `db1` ADD CONSTRAINT for_id

FOREIGN KEY (db2_id)

REFERENCES `db2`(id)

注:db1是需要添加外键的表名,for_id是外键名称,db2_id 是被添加外键的字段(在db1中),db2是外键受约束的表名。


mysql外键dorp不了

mysql的数据库或者数据表drop不了,并出現以下message,是因为有了外键关联之后就不能直接drop掉,此时 可以試下 SET FOREIGN_KEY_CHECKS = 0;然后再drop。

mysql> drop database myDB;

message : ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

mysql> SET FOREIGN_KEY_CHECKS = 0;drop database myDB;

Query OK, 0 rows affected (0.00 sec)


Query OK, 4 rows affected (0.01 sec)


你可能感兴趣的:(mysql外键)