我这里有这行 SQL 代码,它不起作用。我想这是因为我写的语法错误。
constraint ck_ceg check(nvl(ceg in ('%rt','%yrt'),'vezérigazgató'))
此检查必须检查“ceg”是否在其名称末尾有“rt”或“yrt”,如果有,则必须将另一个列值更改为“vezérigazgató”。这可以通过检查约束来实现吗?
提前致谢!
检查只接受布尔值(在这里你传递布尔值或字符串)。
要检查插入/更新的值是否正确,您可以使用:
constraint ck_ceg check(ceg like '%rt' or ceg like '%yrt' or pozicio = 'vezérigazgató')
Check 不能更新值,它只是测试输入的有效性。
如果你想用 '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;