[英]MySql check if foreign key constraint exists
如果我有:
create table order_items
(
orderid int unsigned not null references orders(orderid),
isbn char(13) not null,
quantity tinyint unsigned,
primary key (orderid, isbn)
);
如何檢查orderid int unsigned not null references orders(orderid)
外鍵是否存在?
您可以像這樣使用INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
:
SELECT *
FROM information_schema.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = '<schema>'
AND REFERENCED_TABLE_NAME = 'order_items'
AND CONSTRAINT_NAME = 'orderid'
您可以使用它來檢查整個數據庫的外鍵約束
SELECT TABLE_NAME ,
COLUMN_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
需要檢查特定表意味着請在上述查詢中添加此 where 條件
WHERE
REFERENCED_TABLE_SCHEMA = 'student' AND REFERENCED_TABLE_NAME = 'student_details'
IF EXISTS(
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'referenceTableName' AND TABLE_SCHEMA = 'schemaName' AND TABLE_NAME = 'mainTableName' AND CONSTRAINT_NAME = 'constraintName'
)THEN
//Execute query whatever you need
END IF;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.