Запрос Postgres для последовательности, содержащей случай верблюда - PullRequest
0 голосов
/ 22 мая 2018

Я хочу установить последовательность в моей таблице.Поэтому я перечислил все последовательности с помощью

SELECT c.relname 
FROM pg_class c 
WHERE c.relkind = 'S';

, что дает мне, например: tableName_id_seq

, когда я пытаюсь установить последовательность, используя

SELECT setval("tableName_id_seq", (SELECT MAX(id) from "tableName"));

Я получаю:

ERROR:  relation "tableName_id_seq" does not exist
LINE 1: SELECT setval('tableName_id_seq', (SELECT MAX(id) from "t...

Я уже пробовал одинарные и двойные кавычки.Кто-нибудь есть идеи, что здесь делать?

1 Ответ

0 голосов
/ 22 мая 2018

Избегайте создания идентификаторов в случае верблюда.Работать с ним очень скучно:

CREATE SEQUENCE "CamelCaseSeq";
SELECT nextval(format('%I', 'CamelCaseSeq'));
SELECT setval(format('%I', 'CamelCaseSeq'), 6666);
SELECT currval(format('%I', 'CamelCaseSeq'));
SELECT * FROM "CamelCaseSeq";

Цитата из документов:

При цитировании идентификатора также учитывается регистр, тогда как имена без кавычек всегда складываются в нижнийдело.Например, идентификаторы FOO, foo и "foo" в PostgreSQL считаются одинаковыми, но "Foo" и "FOO" отличаются от этих трех и друг от друга.

Дополнительная информация здесь и здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...