Size: a a a

pgsql – PostgreSQL

2021 March 30

AL

Alexey Lesovsky in pgsql – PostgreSQL
вместо oid::regclass можно сразу relname указать раз уж в pg_class спрашиваем
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Alexey Lesovsky
вместо oid::regclass можно сразу relname указать раз уж в pg_class спрашиваем
Собственно, мне и было интересно, чего там покажет oid::regclass.
А подсмотреть быстренько негде.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
regclass удобный тип
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
ну и остальные reg* вцелом тоже периодически полезны
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Роман Жарков
Собственно, мне и было интересно, чего там покажет oid::regclass.
А подсмотреть быстренько негде.
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Хосподя! table_name, schema_name.table_name или ещё что-то :)
Я до сих пор это использовал при приведении строчки с названием секвенции и ни разу не посмотрел «глазами» что там получается в итоге в консоли psql или pgadmin.
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Т.е. мне интересно как это выглядит, а не что это.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
они удобны, когда с чем-то в каталоге работаешь — не надо джойнить справочники.
правда, есть минус — если объекта (таблицы, пользователя и т.д.) с таким именем нет, то запрос падает с ошибкой
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Victor Yegorov
они удобны, когда с чем-то в каталоге работаешь — не надо джойнить справочники.
правда, есть минус — если объекта (таблицы, пользователя и т.д.) с таким именем нет, то запрос падает с ошибкой
Спасибо, попробую!
источник

B

Boxlogo in pgsql – PostgreSQL
Привет всем. Пишу запрос для обновления данных таблицы с инверсией булевых флагов
update user_entity 
set
id = ld.id,
enabled = case ld.logindisabled when 'true' then false
when 'false' then true
when null then false
end
from(select
ue.id,
(select LOWER(value) from user_attribute as ua where user_id = ue.id and name='loginDisabled' fetch first 1 row only) as loginDisabled
FROM user_entity as ue where ue.realm_id = 'realm') as ld
where user_entity.id = ld.id;
и получаю ошибку
 SQL Error [23502]: ERROR: null value in column "enabled" of relation "user_entity" violates not-null constraint
 Подробности: Failing row contains
Может кто подсказать что не так в запросе?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Boxlogo
Привет всем. Пишу запрос для обновления данных таблицы с инверсией булевых флагов
update user_entity 
set
id = ld.id,
enabled = case ld.logindisabled when 'true' then false
when 'false' then true
when null then false
end
from(select
ue.id,
(select LOWER(value) from user_attribute as ua where user_id = ue.id and name='loginDisabled' fetch first 1 row only) as loginDisabled
FROM user_entity as ue where ue.realm_id = 'realm') as ld
where user_entity.id = ld.id;
и получаю ошибку
 SQL Error [23502]: ERROR: null value in column "enabled" of relation "user_entity" violates not-null constraint
 Подробности: Failing row contains
Может кто подсказать что не так в запросе?
Потому что "WHEN NULL" в принципе не может быть true. Попробуйте этот CASE отдельно, увидите результат.
источник

ГЗ

Геннадий Золотарев... in pgsql – PostgreSQL
Доброго всем времени суток. В документации наткнулся на "в пользовательских таблицах использовать столбец типа OID в качестве первичного ключа не рекомендуется", а есть ли еще какие то зарезервированные слова которые не желательно использовать в качестве имен полей? И чем чревато если у нас все таблицы уже имеют такой первичный ключ?
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Оиды же выпили ли вроде в 12 постгресе?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Обновиться не даст в один прекрасный момент и заставит удалять такие поля.
источник

B

Boxlogo in pgsql – PostgreSQL
Yaroslav Schekin
Потому что "WHEN NULL" в принципе не может быть true. Попробуйте этот CASE отдельно, увидите результат.
Спасибо, переделал на блок else и теперь работает
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Alexander Nikitin
Оиды же выпили ли вроде в 12 постгресе?
в обычных таблицах только, в каталоге есть и будут
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Геннадий Золотарев
Доброго всем времени суток. В документации наткнулся на "в пользовательских таблицах использовать столбец типа OID в качестве первичного ключа не рекомендуется", а есть ли еще какие то зарезервированные слова которые не желательно использовать в качестве имен полей? И чем чревато если у нас все таблицы уже имеют такой первичный ключ?
> а есть ли еще какие то зарезервированные слова которые не желательно использовать в качестве имен полей?
Ключевые слова SQL:
https://postgrespro.ru/docs/postgresql/13/sql-keywords-appendix
источник

ГЗ

Геннадий Золотарев... in pgsql – PostgreSQL
Михаил Шурутов
> а есть ли еще какие то зарезервированные слова которые не желательно использовать в качестве имен полей?
Ключевые слова SQL:
https://postgrespro.ru/docs/postgresql/13/sql-keywords-appendix
Спасибо, но кстати OID там нет(((
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
OID - это тип данных, причём специфичный именно для ПГ, а не зарезервированное слово SQL.
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
И вы, судя по постам, таки путаете тип данных столбца и наименование.
источник