在关系 Person (SSN, State, Name) 中,添加一个基于元组的检查:如果一个人的州是 NY,那么他的 SSN 的前三位数字必须在“050”和“134”之间。(提示:在 SQL 中使用 LEFT 函数)。
CREATE TABLE Person (
SSN INT PRIMARY KEY,
State CHAR(50),
Name CHAR(100),
CHECK (
SELECT LEFT (SSN, 3) AS FirstThreeDigits, SSN FROM Person,
WHERE Person.State == ‘NY’) between '050' and between '134'
);
我对这里的 CHECK 条件感到不舒服。我不确定这是否是进行条件检查的正确方法。有人可以验证一下吗?如果不是,我们如何进行条件检查?
我们需要这个:
if state == 'NY', perform CHECK
我们需要触发器吗?我在想,如果发生新的插入/更新,请检查该值。但问题不是这样问的。