创建表时,是否可以根据两列的计算值声明约束?
这是解释我想要做什么的伪代码:
CREATE TABLE employee_comments(
id int(11),
user_id int(11),
franchise_branch_id int(11) default 0,
corporate_branch_id int(11) default 0,
primary key id,
key corp_xor_franch(corporate_branch_id + franchise_branch_id > 0)
)
基本上,用户是在公司级别或特许经营级别插入评论。每条评论中,其中一项可以留空,但至少必须声明一项。
你最好的选择可能是使用 TRIGGER - mysql 文档herehttp://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
使用来自的信息如何在MySql触发器中中止INSERT操作?像这样的例子应该有帮助
CREATE TRIGGER checkFieldsValid
BEFORE INSERT ON employee_comments
FOR EACH ROW BEGIN
DECLARE errmsg VARCHAR(255) DEFAULT "REQUIRED DATA NOT FOUND";
IF NOT NEW.franchise_branch_id = 0 XOR NEW.corporate_branch_id = 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = errmsg;
END IF;
END;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)