Как удалить триггеры Firebird, созданные автоматически

Как удалить триггеры Firebird, созданные автоматически? У меня ошибка:

SQL> drop trigger CHECK_4;
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-DROP TRIGGER CHECK_4 failed
-Triggers created automatically cannot be modified

В show triggers; нет CHECK_4 , однако когда я пытаюсь работать с db, у меня получается что-то вроде этого:

fdb.fbcore.DatabaseError: ('Error while executing SQL statement:\n- SQLCODE: -625\n- validation error for column "CLIENTS"."DIRECTION", value "*** null ***"\n- At trigger \'CHECK_4\'', -625, 335544347)

person volkoshkursk    schedule 20.05.2021    source источник
comment
они, скорее всего, были созданы как серверная часть CHECK CONSTRAINT, поэтому определите соответствующее ограничение и отбросьте его.   -  person Arioch 'The    schedule 20.05.2021
comment
о, у вас даже есть for column "CLIENTS"."DIRECTION" — так что смотрите ограничения для этого столбца. Но прежде чем нарушать правила - подумай, что на эти правила был резон. У вас есть возможность уничтожить любые данные на вашем компьютере (и даже сам компьютер), если вы действительно собираетесь это сделать, но, возможно, не всегда разумно торопиться.   -  person Arioch 'The    schedule 20.05.2021
comment
и специально для русских - sql.ru/forum/interbase - BTW IBExpert IDE бесплатна для xUSSR пользователей, если вы действительно не предпочитаете iSQL CLI   -  person Arioch 'The    schedule 20.05.2021
comment
Имя CHECK_4 предполагает, что ваша таблица имеет CHECK CONSTRAINT, один из пары автоматически созданных триггеров, запускаемых ПЕРЕД ВСТАВКОЙ или ОБНОВЛЕНИЕМ записи для принудительного применения ограничения. Вам нужно найти внутреннее имя вашего ограничения (если вы не назвали его во время CREATE TABLE), а затем удалить и переделать его. См. Как изменить ограничение CHECK в Firebird?   -  person pilcrow    schedule 21.05.2021
comment
Это также может быть ограничение NOT NULL, которое может быть удалено только с Firebird 3 с использованием ALTER TABLE ... ALTER COLUMN ... DROP NOT NULL (или требуют прямого управления системной таблицей в более ранних версиях).   -  person Mark Rotteveel    schedule 21.05.2021
comment
@MarkRotteveel, возможно! Как будет выглядеть эта спецификация ограничения? В моих вознях сообщение об ошибке от NOT NULL выглядит очень похоже, но Я не вижу соответствующих записей в RDB$TRIGGERS.   -  person pilcrow    schedule 21.05.2021
comment
@pilcrow Я не могу вспомнить точную специфику, может быть, мой ответ здесь полезен: -a-constraint-in-a-firebird-databas">Как узнать, какой столбец таблицы соответствует ограничению в базе данных Firebird?   -  person Mark Rotteveel    schedule 21.05.2021
comment
Проблема была в типе данных в базе данных: он был логическим. После перехода на smallint все работает   -  person volkoshkursk    schedule 24.05.2021