Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
4-1125027100
Irinka
2005-08-26 07:31
2005.10.30
как программно отключать и включать Active Desktop?


8-1118066972
TORT
2005-06-06 18:09
2005.10.30
ГРУГЛАЯ ФОРМА


3-1127279964
leonidus
2005-09-21 09:19
2005.10.30
Перехват нажатия "Применить" в TDBNavigator


1-1128582273
Aleksey
2005-10-06 11:04
2005.10.30
Использование CreatePen


14-1128750300
wandler
2005-10-08 09:45
2005.10.30
Пожалуста помогите !





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский