Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / SELECT ... FOR UPDATE WITH LOCK на updatable view / 18 сообщений из 18, страница 1 из 1
13.07.2016, 13:41
    #39273058
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
Приветствую, форумяне!

Подскажите, пожалуйста, как ведет себя сервер при subj (алгоритм действий)?
...
Рейтинг: 0 / 0
13.07.2016, 13:50
    #39273068
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
Никак. WITH LOCK на VIEW, насколько я знаю, запрещён.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.07.2016, 13:55
    #39273078
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
rdb_dev,

если updatable view получилось естественным способом, то скорее всего данная инструкция просто должна применяться к базовой таблице, а вот если оно сделалось обновляемой при помощи триггеров, то скорее всего никак, т.е. работать оно в принципе не может.

P.S. Не проверял. Проверь и расскажи нам.
...
Рейтинг: 0 / 0
13.07.2016, 14:00
    #39273086
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
Симонов Денис, иными словами, вызова триггера BEFORE UPDATE с переменными NEW == OLD не будет?
...
Рейтинг: 0 / 0
13.07.2016, 14:04
    #39273088
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
Ты доку читал? WITH LOCK делался специально чтобы не трогать триггера при работе. Потому
что иначе он ничем от простого UPDATE не отличается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.07.2016, 14:09
    #39273094
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
rdb_dev,

FOR UPDATE WITH LOCK не вызывает триггеры. Эта конструкция работает через создание версий записей попавших в выборку. Работать она может только с одной единственной таблицей. Попытка примастырить её на VIEW выглядит как минимум странной. Хочешь заблокировать записи в базовой таблице вызывай отдельный запрос с блокировкой базовой таблицы, ну или в ХП где будет написан этот запрос.
...
Рейтинг: 0 / 0
13.07.2016, 14:38
    #39273133
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
Dimitry SibiryakovТы доку читал? WITH LOCK делался специально чтобы не трогать триггера при работе. Потому
что иначе он ничем от простого UPDATE не отличается.Читать-то - читал, но ведь всего не упомнишь.
...
Рейтинг: 0 / 0
13.07.2016, 15:46
    #39273210
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
rdb_dev,

объясняю проще - with lock работает только с физическими записями.
...
Рейтинг: 0 / 0
14.07.2016, 02:50
    #39273472
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
kdvобъясняю проще - with lock работает только с физическими записями.Это не только проще, но и аргументированней. Сразу понятно, почему никто из разработчиков не заморачивался созданием синтетической поддержки WITH LOCK через представления. Ну, и, наверное, "не по стандарту", как кто-то забыл отметить. :)

Всем спасибо! Тема закрыта.
...
Рейтинг: 0 / 0
14.07.2016, 10:22
    #39273567
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
rdb_dev,

помимо стандарта есть ещё здравый смысл. То что ты хочешь не поддаётся здравому смыслу. А ведь представление оно вообще на основе ХП может быть, а в ХП какой-нибудь EXTERNAL DATA SORCE...
...
Рейтинг: 0 / 0
14.07.2016, 10:30
    #39273577
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
Симонов Дениспредставление оно вообще на основе ХП может быть, а в ХП какой-нибудь EXTERNAL DATA SORCE...
Щас ты его научишь плохому, ага... Хотя может второй Таблоид на выходе получится
...
Рейтинг: 0 / 0
14.07.2016, 21:16
    #39274156
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
DarkMaster, плохому могу научить только я.
...
Рейтинг: 0 / 0
15.07.2016, 23:00
    #39275003
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
Симонов ДенисА ведь представление оно вообще на основе ХП может быть, а в ХП какой-нибудь EXTERNAL DATA SORCE...Именно так! И в этом случае, представление должно знать, как "блокировать" такую запись, попадающую в выборку представления. К примеру:
Код: plsql
1.
2.
3.
4.
5.
6.
CREATE OR ALTER VIEW myView
AS
  SELECT ID, NAME
    FROM myProc4myView
ON LOCK DO
  EXECUTE PROCEDURE myProc(ID);

Конечно, подобное решение не лучшим образом скажется на производительности, но, ИМХО, обращение к представлению, как к таблице, более унифицированным.
...
Рейтинг: 0 / 0
16.07.2016, 09:38
    #39275054
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
я знал...
...
Рейтинг: 0 / 0
16.07.2016, 14:25
    #39275097
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
о чем?
...
Рейтинг: 0 / 0
18.07.2016, 09:07
    #39275384
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
rdb_dev,

О том, что желаешь странного.
...
Рейтинг: 0 / 0
18.07.2016, 09:20
    #39275393
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
WildSery, так ведь скучно желать нестранного. Не? ;)
...
Рейтинг: 0 / 0
18.07.2016, 09:46
    #39275409
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT ... FOR UPDATE WITH LOCK на updatable view
rdb_devWildSery, так ведь скучно желать нестранного. Не? ;)

Конечно! Пляски с бубном и зажатыми зубами фаберже выглядят куда как веселее. Со стороны
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / SELECT ... FOR UPDATE WITH LOCK на updatable view / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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