|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Привет всем Есть таблица справочник клиенты и поля isdefault (по умолчание "да" "нет" ) значение "да" должен быть только один раз остальное 0 Как обновить эту полю одним update ом Пример инсертил Клиент А по умоланию нет Клиент Б по умоланию да Клиент С по умоланию да //теперь оставить только эту клиент по умолчанию да остальние сделать нет Редактировал запись Клиент A по умоланию да //теперь оставить только эту клиент по умолчанию да остальние сделать нет ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 13:18 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
RADSeatleКак обновить эту полю одним update ом Сначала пойти к тому, кто эту БД проектировал, взять за грудки и долго посмотреть в глаза. Потом открыть документацию по функции CASE. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 13:20 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Hello, Dimitry Sibiryakov! You wrote on 19 июля 2016 г. 13:26:30: Dimitry Sibiryakov> Потом открыть документацию по функции CASE. если я правильно понял задачу (в чем я совсем не уверен), то уму нужно блокировать всю таблицу на момент insert/update Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 13:27 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Отдельную таблицу default_client с одной записью завести не предлагать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 13:31 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Мимопроходящийто уму нужно блокировать всю таблицу на момент insert/update Всю - не надо. Update сам заблокирует нужные записи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 13:47 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov> Потом открыть документацию по функции CASE. А чего не так-то? Нормальная задача, если я правильно её понял. И case не нужен, достаточно двух отдельных запросов или подзапроса. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 13:51 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Да пока с проверкой так делаю if isdef='да' update set=нет; update set=да where idclient=:pclientid; хотелос с одним апдейтом ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 13:56 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
RADSeatle, так чтоль? Код: plsql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 14:22 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Нестандартный Iif вместо CASE ещё ладно, но EXECUTE BLOCK тут зачем? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 14:54 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Спасибо огромное ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 15:00 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
а может это на триггер повесить ? Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 15:03 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамНестандартный Iif вместо CASE ещё ладно, но EXECUTE BLOCK тут зачем? видимо потому, что дельфийские компоненты нервно относяться к повторению параметров с одинаковым именем, для этого он параметр вытащил в определение блока ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 15:05 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Arioch, на BEFORE триггер не получится. Нельзя в этом триггере вносить изменения в ту же таблицу на которую повешен триггер. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:01 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
rdb_devна BEFORE триггер не получится. Нельзя в этом триггере вносить изменения в ту же таблицу на которую повешен триггер. Оракул запрещает?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:06 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамно EXECUTE BLOCK тут зачем?В общем-то, Arioch прав на счет встречающихся глюков в некоторых компонентах доступа к данным при дублировании имен параметров. Пусть будет EXECUTE BLOCK с "интерфейсом" параметров - так надежнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:08 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
rdb_dev> Нельзя в этом триггере вносить изменения rdb_dev> в ту же таблицу на которую повешен триггер. Кто запрещает? В FB нет ораклового запрета про мутацию. rdb_dev> встречающихся глюков в некоторых компонентах rdb_dev> доступа к данным при дублировании имен параметров. Может, ты даже сможешь назвать их? :) А чего не два параметра, например (если там вообще параметр нужен)? И почему EB, а не ХП ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:13 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамМожет, ты даже сможешь назвать их? :) Я могу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:24 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамКто запрещает? В FB нет ораклового запрета про мутацию.Пока еще ни разу не знаком с oracle db, а про подобный запрет читал где-то в книгах или статьях по FB (то ли у Хелен, то ли на ibase.ru, точно не вспомню). И даже как-то натыкался на ошибку компиляции триггера BEFORE при использовании изменения той же таблицы. Гаджимурадов РустамМожет, ты даже сможешь назвать их? :) А чего не два параметра, например (если там вообще параметр нужен)?Легко! попробуй использовать "чистый" API самого fbclient.dll и посмотри сколько prepare вернет параметров. ;) Гаджимурадов РустамИ почему EB, а не ХП ?Я не настаиваю на использовании исключительно EXECUTE BLOCK. Если ТС'у захочется использовать ХП - пожалуйста! Я не против... А если кому-то просто хочется потроллить на ровном месте, я также не против, но ответ на троллинг не гарантирую. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:25 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
rdb_dev а про подобный запрет читал где-то в книгах или статьях по FB (то ли у Хелен, то ли на ibase.ru, точно не вспомню). не было там такого. Ты наверное путаешь с другим случаем когда кто-то там пытался считать записи и не позволять вставить больше какого-то количества, или попытка проверки уникальности в триггере. Эта штуковина реально не правильно работает в многопользовательских приложениях. Но ни какого запрета при этом нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:31 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Arioch, вообще, за апдейт ВСЕЙ таблицы при изменении ОДНОЙ записи надо руки отрубать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 16:59 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
kdv, согласен. Правильным решением было бы заведение ещё одной таблицы с 1 записью которая бы хранила код клиента, который является клиентом по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 17:07 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov> Я могу. В твоём списке больше одного элемента? :) rdb_dev> про подобный запрет читал где-то в книгах или статьях по FB rdb_dev> (то ли у Хелен, то ли на ibase.ru, точно не вспомню). rdb_dev> И даже как-то натыкался на ошибку компиляции триггера rdb_dev> BEFORE при использовании изменения той же таблицы. Это ты сильно задвинул. Хелен такого написать не могла, а Дима столько не выпьет. И уж точно такого сообщения об ошибке в природе не существует. Как оно звучало-то, "cannot update same table bcz patamushta" ? > посмотри сколько prepare вернет параметров. ;) И? Баг в чём? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 17:17 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
kdv> вообще, за апдейт ВСЕЙ таблицы при изменении ОДНОЙ записи надо руки отрубать. Так задачу так изначально стоит, при чём же тут скрипач. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 17:17 |
|
Подскажите одним update ом можно решит Firebird 3?
|
|||
---|---|---|---|
#18+
kdvArioch, вообще, за апдейт ВСЕЙ таблицы при изменении ОДНОЙ записи надо руки отрубать. там вообще-то WHERE стоит, и если описанная бизнес-логика выдерживается, то будет тронута одна единственная запись ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2016, 17:53 |
|
|
start [/forum/topic.php?fid=40&fpage=57&tid=1562064]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 162ms |
0 / 0 |