powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.4: correlated update
9 сообщений из 9, страница 1 из 1
ASE 12.5.4: correlated update
    #34364676
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, нужно обновить записи в таблице (T) на основе записей в <b>этой же</b> таблице.
Т.е. есть update вида
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
update T
    set some_field = t1.some_field * t2.some_field
from
    T t1, T t2
where
    t1.some_id          = t2.id
    and some_id is not null 


Т.е. вопрос по сути в том чтобы понять по какому принципу ASE будет выбирать какую таблицу обновлять t1 или t2?
...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364707
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
долдно быть как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
update T
    set some_field = some_field * t2.some_field
from
    T t2
where
    T.some_id          = t2.id
    and T.some_id is not null 

апдейтится будет Т. (алиас апдейт таблице на сколько я знаю давать нельзя)
...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364712
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторапдейтится будет Т. (алиас апдейт таблице на сколько я знаю давать нельзя)

вот это меня и смущает... если нельзя давать алиас (действительно нельзя) - то как тогда использовать таблицу в where?
...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364733
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишет
Код: plaintext
1.
2.
3.
4.
Server Message:  Number   107 , Severity   15 
Server '...', Line  10 :
The column prefix 'T' does not match with a table name or alias name used in the query. Either the table is not specified in the FROM clause or it has a correlation name which must be used instead. 

...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364742
_makSim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Апдейтиться будет первый алиас. И его также можно указать явно - и не будет ошибки (2ой нельзя).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 update T
    set t1.some_field = t1.some_field * t2.some_field
from
    T t1, T t2
where
    t1.some_id          = t2.id
    and some_id is not null 
...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364761
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_makSim

Если я правильно понял, то update'титься будет первый по порядку алиас. Это документировано где-то или...?
...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364806
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri пишет:
> Автор: "funikovyuri"
> Люди, нужно обновить записи в таблице (T) на основе записей в <b>этой
> же</b> таблице.
> Т.е. есть update вида
>
>
> update T
> set some_field = t1.some_field * t2.some_field
> from
> T t1, T t2
> where
> t1.some_id = t2.id
> and some_id is not null

UPDATE-иться будет ПЕРВАЯ таблица в списке FROM, с первым алиасом.
Во фразе SET можно указывать алиас для полей, НО ОН ИГНОРИРУЕТСЯ !!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364821
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri пишет:
> Если я правильно понял, то update'титься будет первый по порядку алиас.
> Это документировано где-то или...?

Нет. Если конечно Роб Верчёр (на самом деле не понятно как произносить его
фамилию, Rob Verschoor), который теперь работает в Sybase, не
настоял на том, чтобы это было продокументировано. Он в свое
время уделял много внимания этому в своих статьях и книге
Sybase ASE: Tips, Tricks & Recipes.

Если кто найдет в доке - дайте ссылку, приз.

Хочу подчеркнуть, что алиас в SET у полей может быть любой,
кажется даже допустим несуществующий алиас, но все равно update-иться
будет первый.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5.4: correlated update
    #34364823
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторUPDATE-иться будет ПЕРВАЯ таблица в списке FROM, с первым алиасом.
Во фразе SET можно указывать алиас для полей, НО ОН ИГНОРИРУЕТСЯ !!

Спасибо большое. А это где-нибудь документировано?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.4: correlated update
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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