我在这里有这行SQL代码,但这不起作用。我想这是因为我写错了语法。
constraint ck_ceg check(nvl(ceg in ('%rt','%yrt'),'vezérigazgató'))
此检查必须检查'ceg'是否在其名称的末尾有'rt'或'yrt',如果它有另一列,则必须将值更改为'vezérigazgató'。这是否可以通过检查约束来实现?
提前致谢!
答案 0 :(得分:2)
选中仅接受布尔值(这里传递布尔值或字符串)。
要检查插入/更新的值是否正确,您可以使用:
constraint ck_ceg check(ceg like '%rt' or ceg like '%yrt' or pozicio = 'vezérigazgató')
检查无法更新值,只是测试输入的有效性。
如果你想用'vezérigazgató'自动更新,如果ceg没有以rt或yrt结尾,你必须写一个触发器,如:
create or replace trigger yourtable
before insert or update on yourtable
for each row
begin
if :new.ceg not like '%rt' or :new.ceg not like '%yrt' then
:new.pozicio := 'vezérigazgató';
end if;
end;