powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
15 сообщений из 15, страница 1 из 1
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943883
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> recreate table t(id int); commit;
SQL> insert into t values(1); commit;
SQL> update t set id=-id returning id;

          ID
============
          -1

SQL> update t set id=-id returning rdb$db_key;
Statement failed, SQLSTATE = 42702
Dynamic SQL Error
-SQL error code = -204
-Ambiguous field name between table T and table T and table T
-RDB$DB_KEY
SQL>

Это так и должно быть, что при запросе возврата псевдостолба вываливается ошибка неоднозначного имени поля ?
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943889
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Таблоид!
You wrote on 23 апреля 2015 г. 19:06:02:

Таблоид> Это так и должно быть,
парсер изначально не был заточен под недетерминированность мозговой
деятельности некоторых неординарных индивидуумов.

боюсь, что таки начнут затачивать...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943892
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

с запросом
Код: sql
1.
update t set id=-id returning rdb$record_version;


та же фигня. Похоже не умеет в returning без уточнённого имени выводить

Код: sql
1.
update t set id=-id returning t.rdb$db_key;


вот так всё уже нормально
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943901
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисне умеет в returning без уточнённого имени выводитьНе умеет именно для псевдо-столбов. Для "прописанных" в объявлении таблицы работает ОК.

А еще этот самый 'returning' душит, гад, вывод числа обработанных записей при включённом set count on:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> recreate table t(id int); commit;
SQL> insert into t values(1); commit;
SQL> set count on;
SQL> update t set id=-id rows 1;
 Records affected: 1 
SQL> rollback;
SQL> update t set t.id=-t.id rows 1 returning t.id;

          ID
============
          -1
 -- в где тут "Records affected: 1" ?? -- 
SQL> rollback;
SQL> update t set t.id=-t.id rows 1;
 Records affected: 1 
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943906
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид-- в где тут "Records affected: 1" ?? --
Запрос с returning проходит по классу ХП. Ты видел когда-нибудь у ХП "records affected"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943919
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидНе умеет именно для псевдо-столбов. Для "прописанных" в объявлении таблицы работает ОК.

я это и имел ввиду.
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943921
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗапрос с returning проходит по классу ХП . Ты видел когда-нибудь у ХП "records affected"?Я ввёл в SQL стейтмент, допускаемый синтаксисом и задокументированный.
Откудова мне знать, что он там проходит по какому-то "классу ХП" ? И что это значит вообще, "проход по классу" ?
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943964
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид> И что это значит вообще, "проход по классу" ?

Он имеет в виду курсор. У returning-a его нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38943985
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамОн имеет в виду курсор
Нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38944004
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38944036
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
isc_info_sql_stmt_type
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38944040
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. бла-бла. :) В исходники я и без тебя глянуть могу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38944276
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамВ исходники
"doc/sql.extensions/README.returning.txt? Не, не слышал."
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38945322
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

кстати

Код: sql
1.
update t set id=-id returning new.rdb$db_key, old.rdb$db_key;



работает нормально. Там похоже путаница именно именно между старым и новым значением.
...
Рейтинг: 0 / 0
update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
    #38945323
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

очень может быть. Для обычных полей отсутствие префикса означает NEW. А для RDB$-псевдополей видимо такое умолчание почему-то не работает и генерится ошибка.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / update t return rdb$db_key: "Ambiguous field name between table T and table T and table T"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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