Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: 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 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
14-1128630967
LordOfRock
2005-10-07 00:36
2005.10.30
TheBat!


2-1128851876
ArtemESC
2005-10-09 13:57
2005.10.30
Ascii => DWord


14-1128791118
Praetor
2005-10-08 21:05
2005.10.30
Субботняя задачка


3-1127067957
Prohodil Mimo
2005-09-18 22:25
2005.10.30
Как выглядит аналог EncodeDate v SQL FB 1.5 ?


14-1128890070
NightLord
2005-10-10 00:34
2005.10.30
Баг в WinXP Sp2