powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите плз. замучался совсем с вставкой
7 сообщений из 7, страница 1 из 1
Помогите плз. замучался совсем с вставкой
    #33779393
Stan Marsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БД: Sybase ASA 9.0.2
Есть таблица в БД target, есть временная таблица #tmp
на таблице target - стоит триггер BEFORE INSERT
который фильтрует данные вставляемые из #tmp в target.
триггер :
...
if field_1 = 0 then
rollback trigger;
end if;
...
т.е. если нас не устраивает условие то rollback trigger;

начинаю вставку типа
insert into target (field_1,field_2,field_3)
select field_1,field_2,field_3 from #tmp
нифига - 0 rows inserted, а если

insert into target (field_1,field_2,field_3)
select field_1,field_2,field_3 from #tmp
where field_2 = 'my' - вставляются записи :) ... триггер отрабатывает
в таблице #tmp = 300000 записей

КАК ЛЕЧИТЬ? В чем ДЕЛО?
...
Рейтинг: 0 / 0
Помогите плз. замучался совсем с вставкой
    #33779539
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понятно, что Вы хотите. Во первых ROLLBACK TRIGGER в отличие от ROLLBACK откатывает не всю транзакцию, а только действия, производимые внутри триггера. Если после выполнения ROLLBACK TRIGGER не указана команда возврата ошибки RAISERROR, то операция над таблицей будет просто молча выполнена. Обьясните суть задачи, есть подозрение, что Вы не по назначению используете ROLLBACK TRIGGER.

--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Помогите плз. замучался совсем с вставкой
    #33779553
Stan Marsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да просто триггером обрабатывать записи которые в таблицу приходят, а те которые не прошли по какому либо условию - просто не вносить в таблицу.
И почемуто подумалось что триггером BEFORE INSERT это делать удобнее.
...
Рейтинг: 0 / 0
Помогите плз. замучался совсем с вставкой
    #33779564
Stan Marsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто фильтровать вставляемые данные триггером BEFORE INSERT, т.е. если условие не выполнено - просто откатывать вставку записи ...
...
Рейтинг: 0 / 0
Помогите плз. замучался совсем с вставкой
    #33779706
grach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
примерно так?

Код: plaintext
1.
2.
3.
declare err_tr exception for sqlstate value '99999';
  if field_1 =  0  then
    signal err_tr
  end if
...
Рейтинг: 0 / 0
Помогите плз. замучался совсем с вставкой
    #33780238
old_joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stan Marsh
Изначально неверный подход. Вы на insert пытаетесь сделать delete, выполнив rollback.
...
Рейтинг: 0 / 0
Помогите плз. замучался совсем с вставкой
    #33781635
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то такие задачи надо решать через сheck.
Код: plaintext
1.
2.
3.
4.
Create table target (
    ....
    field_1 integer check (field_1 <>  0 ),
    ...
);
И никакие триггера не нужны совсем.

---
http://www.rusug.ru] Портал рускоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите плз. замучался совсем с вставкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]