powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Остановить триггер или не допустить ввод ненужных данных?
11 сообщений из 11, страница 1 из 1
Остановить триггер или не допустить ввод ненужных данных?
    #38791007
Oleg3412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, в DML форме есть ввод двух переменных.

После того, как их ввели запускается триггер Before insert.

Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой.

Как лучше поступить в этом случае - либо как-то прописать отключение триггера (Exception), либо не допустить ввод этой переменной ещё до триггера, вставив проверку?
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791025
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой.
триггер не вставляет строки.
- не вставляя, это update
- в БД нет термина "последняя строка"
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791034
Oleg3412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ok, триггер c before insert создает в таблице новую строку, но если в этой строке есть совпадающие данные с другими строками таблицы по всем полям, кроме ID, нужно, чтобы этой вставки не производилось. Где лучше прописать это условие? В самом триггере, или перед ним?
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791039
Oleg3412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понимаю логически, что он уже ничего не изменит, потому что стоит before insert, но как в самом Апексе, в форме DML, где пользователь ввел данные не допустить того, чтобы запустилась вставка?
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791132
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412,
AFAIK
там 3 кнопки - Удалить, Изменить, добавить
Вот ими и выбирайте ЧТО именно делать с новой позицией товара.
Если польз. Решил вставить 2 карандаша с одним именем, то надо и вставлять. С разным ID.
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791186
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой.
Petro123триггер не вставляет строки.
Petro123Вот ими и выбирайте ЧТО именно делать с новой позицией товара .
Коллеги, вы решили воспользоваться форумом вместо аськи/скайпа? Один из вас явно знает больше о коде другого, чем это положено обыкновенному обладателю хрустального шара.

Я вот, глядя на тему, понятия не имею, вставляет триггер или не вставляет, товар там или расписание сессии... Кода-то в теме нет.
Oleg3412Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой.
Последней по какому порядку?
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791192
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412но как в самом Апексе, в форме DML, где пользователь ввел данные не допустить того, чтобы запустилась вставка?

Вставка двух одинаковых строк? Если как результат отправки пользователем одной и той же страницы на сервер дважды (возврат в истории браузера или обновление страницы), то так: Edit Page->Duplicate Submission->Allow duplicate page submissions=No.

Но лучше опишите задачу, которую решаете. Может, и не нужны Вам никакие триггеры.

PS: Советую прочитать . Вместе с ссылками.
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791227
Oleg3412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, я не две строки вставляю, я хочу, когда пользователь нажимал кнопку "Создать" в DML - отчете, если он вводил такоже последнее значение суммы договора, ему бы выкидывалось сообщение, что такое значение сейчас уже стоит и триггер не выполнялся. Нужно в кнопке повозиться, чтобы шла проверка для запуска или незапуска триггера?
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791249
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412,

RTFM Oracle® Application Express Application Builder User's Guide: 10.1.5 Validating User Input in Forms . Добавьте валидацию с соответствующим сообщением.
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791408
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412,

Еще немного из хрустального шара

Погуглите по:

constraint unique

constraint unique deferrable novalidate

unique function based index


+ чтобы вывести сообщение:

STFG apex error handling unique constraint
...
Рейтинг: 0 / 0
Остановить триггер или не допустить ввод ненужных данных?
    #38791439
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412если он вводил такоже последнее значение суммы договора
а он что, дурак, одно и то-же по сто раз вводить?
Или ты ему не показал у кнопок всю инфу?
Приведи наконец схему БД или скрины.
ЗЫ.
Если гадать, то посмотри этот форум и функционал: "Не заводите вопросы дважды" ))
Удачи!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Остановить триггер или не допустить ввод ненужных данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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