SQL号检查触发器

时间:2012-04-23 00:40:29

标签: sql error-handling triggers

我需要ID为8位整数。

create table foo(
ID  primary key DEFERRABLE,
);

create or replace trigger foo_trg 
before insert or update
on foo
for each row
Begin
  if :new.ID > 99999999  or :new.ID < 9999999 then 
    raise pkg.Illegal_update;
  end if;
end;
/

现在我的触发器只能在数字太大或太小时停止非法更新。我需要一种检查数字中的小数的方法

欢迎任何建议,谢谢

2 个答案:

答案 0 :(得分:1)

什么是DBMS?我将id列的类型声明为整数。在Oracle中,你可以这样做:

create table foo(
ID  NUMBER(8,0) primary key DEFERRABLE,
);

有什么理由可以推迟吗?

答案 1 :(得分:0)

如果其他所有方法都失败,您可以使用floor(number) = number