2014-11-22 1 views
0

Я использую этот запрос для поиска внешнего ключа:Как я могу увидеть ON DELETE и ON UPDATE для внешнего ключа в MySQL?

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

Это дает мне большую часть того, что мне нужно, но это два поля я пропавшее является

  1. на обновлении
  2. на delete

Как найти эти свойства по ограничению внешнего ключа?

ответ

1

Вы можете использовать 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 

Вступив на CONSTRAINT_SCHEMA и CONSTRAINT_NAME, вы можете получить UPDATE_RULE и DELETE_RULE.

Here, в документе.

+0

Спасибо! Работала отлично. –

0

Вы не сказали, но я предполагаю, что вы ищете что-то, что вы можете получить программным путем?

Если нет, я уверен, что SHOW CREATE TABLE ? предоставит вам всю информацию, которую вы ищете.

Смежные вопросы