2012-08-31 3 views

답변

4

MySQL을 5.1.10 때문에, 당신이 합류하여 INFORMATION_SCHEMA tables에서이 정보를 얻을 수 있습니다 REFERENTIAL_CONSTRAINTSKEY_COLUMN_USAGE에 :

SELECT kcu.COLUMN_NAME 
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc 
    JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu 
USING (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME) 
WHERE 'CASCADE' IN (rc.DELETE_RULE, rc.UPDATE_RULE) 
    AND kcu.TABLE_SCHEMA = DATABASE() 
    AND kcu.TABLE_NAME = 'my_table' 
+0

에 대한 + 1 eggyal을 위해서, 더 좋고 더 예리한 방법을 찾음으로써 나를 보여주지 마세요. P – Fluffeh

+0

@Fluffeh : 죄송합니다! :) – eggyal

+0

실제로, 그것은 훌륭합니다, 나는 당신에게서 일을하는 더 좋은 방법을 배웁니다. 그래서 위대한 일을 계속하십시오! – Fluffeh

2

당신은을 사용할 수 있습니다

show create table tableName; 

하는 것이다 출력 계단식 삭제에 대한 참조를 가지고 만들 테이블.

예는 docs에서 암초에 걸리게 :

mysql> SHOW CREATE TABLE ibtest11c\G 
*************************** 1. row *************************** 
     Table: ibtest11c 
Create Table: CREATE TABLE `ibtest11c` (
    `A` int(11) NOT NULL auto_increment, 
    `D` int(11) NOT NULL default '0', 
    `B` varchar(200) NOT NULL default '', 
    `C` varchar(175) default NULL, 
    PRIMARY KEY (`A`,`D`,`B`), 
    KEY `B` (`B`,`C`), 
    KEY `C` (`C`), 
    CONSTRAINT `0_38775` FOREIGN KEY (`A`, `D`) 
REFERENCES `ibtest11a` (`A`, `D`) 
ON DELETE CASCADE ON UPDATE CASCADE, // <--- This is what you are looking for 
    CONSTRAINT `0_38776` FOREIGN KEY (`B`, `C`) 
REFERENCES `ibtest11a` (`B`, `C`)  // <--- This is what you are looking for 
ON DELETE CASCADE ON UPDATE CASCADE 
) ENGINE=INNODB CHARSET=latin1 
1 row in set (0.01 sec) 
+0

1 경쟁심 – asprin

관련 문제