简体   繁体   English

如何在MySQL中看到外键的ON DELETE和ON UPDATE?

[英]How do I see the ON DELETE and ON UPDATE for a foreign key in MySQL?

I'm using this query to find foreign key relationships: 我正在使用此查询来查找外键关系:

SELECT *
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `REFERENCED_TABLE_SCHEMA` = ? AND 
      `TABLE_NAME` = ? AND 
      `REFERENCED_TABLE_NAME` IS NOT NULL

It's giving me most of what I need, but the two fields I am missing are 它满足了我的大部分需求,但我缺少的两个领域是

  1. on update 更新时
  2. on delete 删除时

How do I find those properties on a foreign key constraint? 如何在外键约束下找到这些属性?

You can use the INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS table that has the following columns: 您可以使用包含以下列的INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS表:

    CONSTRAINT_CATALOG      
    CONSTRAINT_SCHEMA        
    CONSTRAINT_NAME      
    UNIQUE_CONSTRAINT_CATALOG       
    UNIQUE_CONSTRAINT_SCHEMA         
    UNIQUE_CONSTRAINT_NAME       
    MATCH_OPTION         
    UPDATE_RULE      
    DELETE_RULE      
    TABLE_NAME       
    REFERENCED_TABLE_NAME

By joining on CONSTRAINT_SCHEMA and CONSTRAINT_NAME , you can get the UPDATE_RULE and DELETE_RULE . 通过加入CONSTRAINT_SCHEMACONSTRAINT_NAME ,可以获取UPDATE_RULEDELETE_RULE

Here , in the document. 在这里 ,在文档中。

You didn't say, but I assume you're looking for something you can access programmatically? 您没有说,但是我想您正在寻找可以以编程方式访问的内容?

If not, I'm pretty sure SHOW CREATE TABLE ? 如果没有,我很确定SHOW CREATE TABLE ? will give you all the info you're looking for. 将为您提供所需的所有信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM