|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Подскажите, форумяне - есть две переменных одинакового домена с CHECK. Когда значение одной переменной присваивается другой, CHECK будет отрабатывает или же, с целью быстродействия, сервер считает, что значение уже проверено и надобности в повторной проверки нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 13:44 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Что, и версию метаданных проверять? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 13:58 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
WildSery, вообще-то, я ожидал ответ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 14:11 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
WildSery, я правильно тебя понял - CHECK будет отрабатывать всегда, чтобы не зависеть от версии метаданных? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 14:21 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev, Я не знаю, есть ли такая оптимизация, пусть более осведомлённые коллеги ответят. Мне только кажется это очень сомнительным из-за сложностей реализации и малой нужды в такой оптимизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 14:26 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> сервер считает, что значение уже проверено и надобности в повторной проверки нет? Конечно, повторно проверяется. И нельзя не проверять. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 17:11 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev, допустим, ты сначала вбил данные, а потом наложил check, который часть этих данных не пропустил бы. Это раз. Два - check проверяется при присваивании. Зачем сервер в этот момент будет проверять, ЧТО присваивается, и с таким же check, или нет? Это нонсенс какой-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 18:22 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
kdv> допустим, ты сначала вбил данные, а потом наложил check Для переменной? Это как это? > Зачем сервер в этот момент будет проверять, ЧТО присваивается, > и с таким же check, или нет? Это нонсенс какой-то. Я вам даже больше скажу - даже если бы он знал, что на том конце тоже правильное предварительно зачеканное - он всё равно должен проверить. И я не шучу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 18:37 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Кстати да, достаточно в CHECK-условие ввести нечистую функцию, некий чёрный ящик, обращающийся ко внешнему контексту (например дате-времени, или курсу валюты), и одно и то же значения может в разное время проходить проверку и проваливать. ЗАЧЕМ такое делать - вопрос отдельный, и не серверу его решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 18:44 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Да даже без внешних источников *. P.S. * по отношению к БД. В отношении чека - все что за пределами value - внешнее, по сути. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2017, 18:48 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Всем спасибо! Так как мне достаточно только одной проверки, нужно было понять - стоит ли дополнительно вводить дереватив домена без CHECK. В моем, конкретном, случае, никаких внешних условий нет, а есть составной идентификатор BIGINT, вычисляемый по определенному правилу. В CHECK прописана процедура, проверяющая соответствие условиям формирования идентификатора, но одно дело - сформировать идентификатор разово, при создании записи оператором, а другое - нагружать сервер проверкой идентификаторов данного домена на поле с внешним ключом, при высокой интенсивности вставки записей в таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 09:28 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
AriochКстати да, достаточно в CHECK-условие ввести нечистую функцию, некий чёрный ящик, обращающийся ко внешнему контексту (например дате-времени, или курсу валюты), и одно и то же значения может в разное время проходить проверку и проваливать. ЗАЧЕМ такое делать - вопрос отдельный, и не серверу его решать.В MySQL, к примеру, для хранимых процедур/функций есть опция DETERMINISTIC, позволяющая разработчику указать серверу, что в любой момент времени и для одних и тех же параметров, значение функции принимает одни и те же значения. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 09:40 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev, в Firebird тоже есть для функций, но работает только когда параметров нет (увы). Для процедур это не реально, по другому они у нас работают ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 09:52 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> стоит ли дополнительно вводить дереватив домена без CHECK. Стоит перестать фигнёй маяться. > BIGINT, вычисляемый по определенному правилу. > В CHECK прописана процедура, проверяющая соответствие > условиям формирования идентификатора, но одно дело - > сформировать идентификатор разово, при создании записи CHECK не создаёт (хотя может, в принципе, если очень сильно извернуться), CHECK проверяет. Соответственно, если "разово и дальше не нужно, не меняется" - CHECK не нужен, достаточно процедуры. Если не только лишь разово и может меняться - CHECK нужен на каждый чих. Конкретно на время массовой заливки "CHECK" можно и отключить, временно (совсем или для этой заливки). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 10:02 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, может, всё таки, для внешнего ключа проще создать домен-дереватив без CHECK, при том, что в зависимую таблицу данные валят интенсивно и не переставая? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 10:09 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> может, всё таки, для внешнего ключа проще создать домен-дереватив без CHECK rdb_dev> при том, что в зависимую таблицу данные валят интенсивно и не переставая? Во-первых, если ты думаешь, что использование умных буржуйских слов (особенно, когда есть более привычные термины, в т.ч. на русском языке) добавит тебе весомости, сделает твою речь понятнее, а жизнь приятнее - ты ошибаешься. Отнюдь, весьма, не только лишь всегда. (с) Во-вторых, CHECK никаким боком не относится (в т.ч. не проверяется) к внешим ключам (я говорю о поле, на которое ссылаются FK, а не сами FK-поля дочерних таблиц, конечно). Если же ты собрался на FK-поле дочерней таблицы CHECK повесить, то технически это можно, конечно, но практически трудно обосновать этот вывих логики. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 11:32 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev, какую-то мутную хрень обсуждаешь. CHECK всегда проверяется при присваивании полю или переменной и абсолютно всё равно что и чем там до этого проверялось. И это правильно. Не нужна такая проверка на каждый чих, тогда и не ставь CHECK на домен. Проверяй правильность в триггере. А уж пихать в CHECK SELECT или ХП кривизна сама по себе. Хранимую функцию можно, но она должна быть относительно простой, детерминированной и без побочных эффектов. То что сервер предоставляет возможность засунуть в CHECK всё что угодно это хорошо, но вовсе не обязательно этим пользоваться. Иногда мозг надо включать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 11:42 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамrdb_dev> может, всё таки, для внешнего ключа проще создать домен-дереватив без CHECK rdb_dev> при том, что в зависимую таблицу данные валят интенсивно и не переставая? Во-первых, если ты думаешь, что использование умных буржуйских слов (особенно, когда есть более привычные термины, в т.ч. на русском языке) добавит тебе весомости, сделает твою речь понятнее, а жизнь приятнее - ты ошибаешься. Отнюдь, весьма, не только лишь всегда. (с)То есть, когда ты употребляешь это слово в отношении подзапросов в соединениях оператора SELECT, то это нормально, а когда я употребляю это слово в более широком его смысле, то я выпендриваюсь? Сказочно... Гаджимурадов РустамВо-вторых, CHECK никаким боком не относится (в т.ч. не проверяется) к внешим ключам (я говорю о поле, на которое ссылаются FK, а не сами FK-поля дочерних таблиц, конечно). Если же ты собрался на FK-поле дочерней таблицы CHECK повесить, то технически это можно, конечно, но практически трудно обосновать этот вывих логики.Трудно обосновать использование одного и того же домена для полей первичного и вторичного ключей? Сам-то понял, что сказал? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 11:47 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Симонов Денис> Не нужна такая проверка на каждый чих, тогда и не ставь Симонов Денис> CHECK на домен. Проверяй правильность в триггере. Можно и на само поле, в принципе. > То что сервер предоставляет возможность засунуть в CHECK всё > что угодно это хорошо, но вовсе не обязательно этим пользоваться. Усложнив - победим! (с) Заодно повысим энтропию, ЧСВ и служебную значимость (последнее - может и понизиться). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 11:50 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Я тоже подумал о проверке в триггере, раз больше нигде не надо, кроме первичного заполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 12:05 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> То есть, когда ты употребляешь это слово в отношении подзапросов rdb_dev> в соединениях оператора SELECT, то это нормально Ась? Я использовал слово "дереватив" (через "и" правильо пишется, кстати) "в отношении подзапросов оператора SELECT"? Шариков, Вы никак рехнулись? > Трудно обосновать использование одного и того же домена для полей > первичного и вторичного ключей? Сам-то понял, что сказал? Конечно, понял. Домен-домену - рознь, как я уже сказал выше - вешай CHECK не на домен, а на поле. Чисто теоретически, можешь ещё в трекере type of column для таблиц попросить, но я сомневаюсь, что эта фича будет иметь высокий приоритет у Кальтенбруннера (а у остальных - и подавно). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 12:05 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
WildSery> Я тоже подумал о проверке в триггере, раз больше нигде не надо, кроме первичного заполнения. Я вам даже больше скажу - если только первичное заполнение - и проверять нечего, только ХПшку/функцию дернуть один раз и всё (или даже без неё обойтись, если алгоритм несложный). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 12:08 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамrdb_dev> То есть, когда ты употребляешь это слово в отношении подзапросов rdb_dev> в соединениях оператора SELECT, то это нормально Ась? Я использовал слово "дереватив" (через "и" правильо пишется, кстати)Да, через "и", но, как я вижу, ты понял о чем идет речь. Гаджимурадов Рустам"в отношении подзапросов оператора SELECT"? Шариков, Вы никак рехнулись?Кто же тебя, чудака, модератором назначил? За твои "способности" к общению и переход на личности тебя надо банить навечно. Гаджимурадов Рустам> Трудно обосновать использование одного и того же домена для полей > первичного и вторичного ключей? Сам-то понял, что сказал? Конечно, понял. Домен-домену - рознь, как я уже сказал выше - вешай CHECK не на домен, а на поле. Чисто теоретически, можешь ещё в трекере type of column для таблиц попросить, но я сомневаюсь, что эта фича будет иметь высокий приоритет у Кальтенбруннера (а у остальных - и подавно). В хранимых процедурах мне CHECK тоже на "поле" вешать или же ты предлагаешь не забыть во всех ХП дополнительно прописать вызов процедуры проверки, а потом отлавливать баги, если где-то забыл прописать? Узбагойзя! Я получил ответ на свой вопрос и все твои потуги - лирика. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:07 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> Да Ссылку в студию! :) > В хранимых процедурах мне CHECK тоже на "поле" вешать Нет, конечно. RTFM type of domain/column. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:15 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамСсылку в студию! :) Не проблема... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:34 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
> rdb_dev> Да > > Ссылку в студию! :) Вообще, термин "дериватив" в этом разделе использовался только два раза (и оба раза - тобой, и оба раза через "е" ). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:35 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> Не проблема... Эх... хоть читать научись, как что сам пишешь, так и то что тебе пишут... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:36 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамВообще, термин "дериватив" в этом разделе использовался только два раза (и оба раза - тобой, и оба раза через "е" ). И чо? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:36 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамЭх... хоть читать научись, как что сам пишешь, так и то что тебе пишут... Так что ты там про нерусские слова говорил? Предлагаешь полностью отказаться от использования любых заимствований? Может еще посоветуешь украинцам избавиться в "своей" мове от полонизмов? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:42 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> И чо? Так есть ссылка, где я "употребляю это слово в отношении подзапросов в соединениях оператора SELECT" или нету? rdb_dev> Предлагаешь полностью отказаться от использования любых заимствований? Нет, конечно, только от ненужных, тем более из другой области. В данном случае терминов "дополнительное", "производное", "служебное", "суррогатное" поле более чем достаточно. Остальное своё бла-бла и политоту засунь куда-нибудь подальше. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 13:59 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 14:08 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамrdb_dev> И чо? Так есть ссылка, где я "употребляю это слово в отношении подзапросов в соединениях оператора SELECT" или нету?У меня нет никакого желания ползать по всему форуму, выискивая возможное употребление тобой слов "дериват"/"дериватив" в отношении соединений множеств строк из запросов на выборку. Гаджимурадов Рустамrdb_dev> Предлагаешь полностью отказаться от использования любых заимствований? Нет, конечно, только от ненужных, тем более из другой области. В данном случае терминов "дополнительное", "производное", "служебное", "суррогатное" поле более чем достаточно."Суррогатное"? Ничо не ёкнуло при написании данного слова? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 14:15 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамОстальное своё бла-бла и политоту засунь куда-нибудь подальше.Где ты политоту разглядел? Про "украинську мову" - чистой воды история! Не веришь мне, посмотри "Букварь южнорусский" Тараса Шевченко от 1861 года. Я же не говорю о том, как из южно-русского говора(молвы) появилась "украинська мова", так как это, действительно, была бы политота. И то не факт... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 14:21 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Мимопроходящий, да, опять! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 14:22 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev> У меня нет никакого желания ползать по всему форуму Ну т.е. Шариков говорит чепуху, Ч.Т.Д. > "Суррогатное"? Ничо не ёкнуло при написании данного слова? Нет, конечно, давно общепринятый термин в БД. Равно как и триггер, и куча других заимствований. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 14:27 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам> "Суррогатное"? Ничо не ёкнуло при написании данного слова? Нет, конечно, давно общепринятый термин в БД. Равно как и триггер, и куча других заимствований. То есть, по твоему - "суррогат" и "триггер", это "давно общепринятое заимствование", а "дериват" - совсем новьё? ^^ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 14:37 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
В СУБД - конечно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 14:47 |
|
Неочевидность ответа на простой вопрос по домену с CHECK
|
|||
---|---|---|---|
#18+
rdb_dev, Модератор: Раз Рустам за такое хамское обращение тебя не забанил, то и я пока не буду. Но свой плюс ты получил, и потому если хочешь продолжать общение, обнови настройки речи. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2017, 15:10 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561333]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
106ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 516ms |
0 / 0 |