Вниз
Скачать: CL | DM;

Задать триггер на ограничение количества записей   Найти похожие ветки 

 
REP ©   (2005-09-16 13:33) [0]

Добрый день.

Пытаюсь ограничить количество записей в таблице базы данных.

Делаю триггер AFTER INSERT:

CREATE TRIGGER PREDPR_AI0 FOR PREDPR
ACTIVE AFTER INSERT POSITION 0
AS
begin
 /* Trigger text */
 IF (5<(SELECT Count(*) FROM PREDPR )) then
   DELETE FROM predpr where ID=NEW.ID;
end

Пишет: Subselect illegal in this context.

Можно ли как то узнать количество записей в таблице из триггера? И сравнить их с каким то полем в другой таблице.

Естественно можно сделать вставку через хранимую процедуру и там проводить все проверки, но хотелось бы именно через триггер.


 
Anatoly Podgoretsky ©   (2005-09-16 13:35) [1]

Многие СУБД запрещают SELECT в тригере, как с этим у FireBird


 
Desdechado ©   (2005-09-16 13:42) [2]

FireBird - версионник, у него с SELECT"ом из триггеруемой таблицы нормально

а вот синтаксис у автора вообще ни в какие ворота, почитал бы Language Reference, что ли
ibase.ru

и я бы проверку ставил в BEFORE INSERT
и удалять ничего не надо, просто EXCEPTION подыми


 
REP ©   (2005-09-16 13:56) [3]


> Desdechado ©   (16.09.05 13:42) [2]

Да я понимаю что удалять не надо, это я так попробовать, знаю что надо исключение поднимать. так быстрее показалось. Но все равно если писать
IF (5<(SELECT Count(*) FROM PREDPR )) then
  что бы то ни было

ругается на SubSelect


 
REP ©   (2005-09-16 13:57) [4]

и в BEFORE INSERT тоже


 
Johnmen ©   (2005-09-16 14:17) [5]

SELECT COUNT(*) FROM PREDPR INTO :YourVariable;
IF (5<YourVariable) then


 
REP ©   (2005-09-16 14:22) [6]


> Johnmen ©   (16.09.05 14:17) [5]

Спасибо огромное


 
Desdechado ©   (2005-09-16 15:33) [7]

Johnmen ©   (16.09.05 14:17) [5]
зря с ложки кормишь, привыкнет

REP ©   (16.09.05 13:56) [3]
> Но все равно
А слона-то ты и не заметил. Читай Language Reference, чтоб не месить грязь руками, и других не заставлять приглядываться ...


 
Johnmen ©   (2005-09-16 15:47) [8]

>Desdechado ©   (16.09.05 15:33) [7]

У меня почему-то есть ощущение, что не привыкнет.
Да и не кормил разжёванным...:)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
2-1128252504
Volf_555
2005-10-02 15:28
2005.10.30
Как в поле ввода пароля вводимый пароль отображать звёздочками?


14-1128948874
Green-Templar
2005-10-10 16:54
2005.10.30
Удобочитаемость исходников


2-1128605830
Толян
2005-10-06 17:37
2005.10.30
Массивы


5-1105981960
Arnold
2005-01-17 20:12
2005.10.30
Как создать компонент вроде граф. компонентов в Visio или в Worda


1-1128448523
Цукор5
2005-10-04 21:55
2005.10.30
Position:=poMainFormCenter




   Наверх