powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
24 сообщений из 24, страница 1 из 1
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285100
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, форумяне!

Порой не хватает вразумительного сообщения на исключение на неудачу при проверке ограничения CHECK, вместо стандартного сообщения. Предлагаю расширить объявление CONSTRAINT (можно и не только CHECK) примерно до следующего вида:
Код: sql
1.
CONSTRAINT <constraint_name> CHECK (<bool_exp>) [ON FAIL EXCEPTION <exception_name>]

Вопрос адресован, конечно, разработчикам, но обсуждение "надо/не надо" никто не запрещал.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285107
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

WHEN чем не устроил?
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285108
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

такая хотелка уже была, но только для Foreign Key CORE-736 . Первоначально даже была запланирована на 3.0, но ближе к Альфе её сняли.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285110
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

кстати для FK она более полезна. CHECK всегда можно заменить триггером
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285112
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster, если таблице, вдруг, не нужны триггеры, то писать отдельно триггер, чтобы выбросить вразумительное исключение, как-то не комильфо, на мой взгляд.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285115
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, а можно снова поднять этот вопрос, но уже для всех ограничений (PK, FK, UQ, CHK)?
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285116
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

как хочешь. Ссылку на тикет я уже привёл. Можешь дописать туда коммент и проголосовать. Создавать ещё 3 отдельных тикета не вижу смысла
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285117
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, ясно, спасибо!
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285118
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_dev,

кстати для FK она более полезна. CHECK всегда можно заменить триггером

и то и другое делается через COMMENT ON.

имя FK или CHECK парсятся из сообщения об ошибке, далее запрашивается комментарий et voila.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285120
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor, с костылями давно и сразу всё понятно. Спасибо!
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285124
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

на самом деле случаев нарушения FK может быть довольно много, одним сообщением там не обойтись. Это будет весьма сильно уродовать синтаксис. Для CHECK там хоть всё ясно. Для PK, UK вроде тоже один случай, хотя может что и забыл. Да и кстати есть ещё NOT NULL. Тоже туда сообщение писать?

В стандарте ничего такого вроде не предусмотрено, так что скорее всего опять откажут.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285127
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, на NOT NULL, ИМХО, большого смысла нет, так как очевидность сообщения такого исключения, обычно, не вызывает неопределенности в трактовке.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285129
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВ стандарте ничего такого вроде не предусмотрено, так что скорее всего опять откажут.
Почему нужно делать всё исключительно по стандарту, если в стандарте об этом может быть не сказано вовсе? Тем более, что стандарт, при этом, не пострадает, а лишь будет дополнен собственным решением.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285131
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

сначала придумай синтаксис на FK к примеру. Только сразу подо все случаи.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285133
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, про "все случаи" не понял. Какие еще могут быть варианты при неудовлетворении ссылочной целостности FK?
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285134
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

когда разработчики хотят внедрить новую SQL фичу они
1. Смотрят есть ли это в стандарте
2. если нет в стандарте, то смотрят а нет ли чего похожего в других СУБД, и адаптируют под FB (чаще всего чтобы соответствовало PSQL)
3. Если нет придумывают свой синтаксис

До 3 на практике почти никогда не доходит, потому как для этого нужны весьма убедительные аргументы.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285135
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

1. Удаление из master таблицы без предложения ON DELETE CASCADE и т.п.
2. Обновление ключа мастер таблицы без предложения ON UPDATE CASCADE и т.п.
3. Попытка вставки/обновления FK на значение не существующее в master таблице
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285137
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по этой фиче вроде как было "добро" (по крайней мере у меня не было возражений), просто некогда ей заниматься
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285139
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денискогда разработчики хотят внедрить новую SQL фичу они
1. Смотрят есть ли это в стандартеК сожалению, не имею такой возможности, так как не имею текста стандарта, а платить за него почти 400 швейцарских франков из своего кармана я не готов.

Симонов Денис2. если нет в стандарте, то смотрят а нет ли чего похожего в других СУБД, и адаптируют под FB (чаще всего чтобы соответствовало PSQL)
3. Если нет придумывают свой синтаксисЯ же не настаиваю исключительно на своем варианте синтаксиса и привел его только в качестве примера. Разумеется, разработчики могут реализовать это по своему усмотрению. Лишь бы было.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285140
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

сколько по FK может быть случаев нарушений?
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285142
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис1. Удаление из master таблицы без предложения ON DELETE CASCADE и т.п.
2. Обновление ключа мастер таблицы без предложения ON UPDATE CASCADE и т.п.
3. Попытка вставки/обновления FK на значение не существующее в master таблицеНу, да... Про исключение при каскадном обновлении/удалении я, как-то, сразу и не вспомнил.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285145
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrпо этой фиче вроде как было "добро" (по крайней мере у меня не было возражений), просто некогда ей заниматьсяТак никто и не торопит с реализацией. Главное, чтоб разработчики об этой фиче не забыли и, таки, реализовали её в обозримом будущем.
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285215
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devГлавное, чтоб разработчики об этой фиче не забыли и, таки, реализовали её в обозримом будущем.

А пойти и реализовать самому?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
    #39285714
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, пойти - в смысле "на" или "в"? К сожалению, в моем распоряжении нет пары-тройки лишних месяцев ковыряться в потрохах FirebirdSQL сервера и исследовать биопсии его органов.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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