如何为外键获取ON DELETE和ON UPDATE操作值?

时间:2017-05-04 04:10:28

标签: mysql foreign-keys

我需要获取有关MySQL外部约束的信息。

我需要知道references表,foreign columnconstraint name以及ON DELETE和ON UPDATE操作。

我能够获得references表格,foreign columnconstraint name,但需要知道ON DELETEON UPDATE

的值

这是我用来获取上述信息的查询

SELECT
 referenced_table_name AS `references`
,column_name AS `foreign`
,referenced_column_name AS `on`
FROM
information_schema.key_column_usage AS u
WHERE
referenced_table_name IS NOT NULL AND table_schema = 'test' AND table_name = 'borroweds';

1 个答案:

答案 0 :(得分:1)

尝试此查询

SELECT 
 r.referenced_table_name AS `references`
,r.CONSTRAINT_NAME AS `name`
,r.UPDATE_RULE AS `onUpdate`
,r.DELETE_RULE AS `onDelete`
,u.referenced_column_name AS `on`
,u.column_name AS `foreign`
FROM  INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS r
INNER JOIN information_schema.key_column_usage AS u ON u.CONSTRAINT_NAME = r.CONSTRAINT_NAME AND u.table_schema = r.constraint_schema AND u.table_name = r.table_name
WHERE u.constraint_schema = 'test' AND u.table_name = 'borroweds'