2012-04-23 3 views
2

Мне нужен идентификатор, который будет состоять из восьми целых цифр.Триггер проверки числа SQL

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; 
/

Прямо сейчас мой триггер может остановить только незаконное обновление, если число слишком велико или слишком мало. Мне нужен способ проверки десятичной дроби в ряде

Любые предложения приветствуются спасибо

ответ

1

Что СУБД? Я бы назвал тип столбца id целым числом. В Oracle вы сделали бы это так:

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

Есть ли причина, по которой это сделано отложенным?

+0

Это связано с тем, как я загружаю свои данные, но это запутывает ... спасибо, я не могу поверить, что я не думал об этом хаха – user1320691

0

Вы можете использовать floor(number) = number, если все остальное не работает.

Смежные вопросы