我有一个MySql(InnoDb)表,表示关于多种类型对象之一的注释。因为我正在使用Concrete Table Inheritance,所以我为每种类型的对象(商店,类别,项目)提供了不同的外键,如下所示。对于每条记录,必须只设置一个外键,其他两个必须为空。如何在MySql中指定此约束?
CREATE TABLE `tbl_comment` (
`comment_id` bigint(20) NOT NULL AUTO_INCREMENT, /* primary key */
`_user_id` bigint(20) NOT NULL, /* foreign key to user table - always set (NOT NULL) */
`store_id` int(11) DEFAULT NULL, /* foreign key to store table */
`category_id` bigint(20) DEFAULT NULL, /* foreign key to category table */
`item_id` bigint(20) DEFAULT NULL, /* foreign key to item table */
...
答案 0 :(得分:0)
尝试添加以下触发器
CREATE TRIGGER on_insert AFTER INSERT ON `tbl_comment`
FOR EACH ROW
BEGIN
SET NEW.category = NULL, NEW.item = NULL;
END;