我有一个包含3列的简单表格。
| prefix | phoneNumber | verifiedDate |
------------------------------------------
verifiedDate可以保留Null
如何在数据库上强制执行此约束?每个UNIQUE prefx&如果VerifiedDate不为NULL,则phoneNumber存在。
复制prefx&只有当没有行保存prefx&时才允许使用phoneNumber。 phoneNumber和verifiedDate不是NULL!
答案 0 :(得分:0)
答案 1 :(得分:0)
一般的想法是编写一个返回“错误数据”的查询,然后在触发器测试中,该查询是空集,例如
之类的东西DECLARE unique_tally INT;
SET unique_tally = 0;
SELECT COUNT(*)
INTO unique_tally
FROM (
SELECT prefix, phoneNumber, COUNT(*) AS tally
FROM SimpleTable
WHERE verifiedDate IS NOT NULL
GROUP
BY prefix, phoneNumber
) AS DT1
WHERE tally > 1;
IF ( unique_tally > 0 ) THEN
-- Fail