Как проверить, является ли строка действительным postgres именем? - PullRequest
0 голосов
/ 29 февраля 2020

Как проверить, является ли указанная строка действительным именем в postgres? Я знаю, что можно использовать любую строку в качестве имени, когда она заключена в кавычки, но я хочу знать, можно ли использовать строку без кавычек, т.е. в качестве имени роли. У меня есть идея сделать это так: НАЧАТЬ; СОЗДАТЬ РОЛЬ; ROLLBACK; Это хорошая идея?

1 Ответ

4 голосов
/ 01 марта 2020

Вы можете использовать функцию quote_ident(), которая будет заключать строку в кавычки только при необходимости.

Так что, если значение "заключено в кавычки" совпадает с вводом, это допустимый идентификатор:

select quote_ident('foobar') = 'foobar'

возвращает true, однако

select quote_ident('foo bar') = 'foo bar'

возвращает false.

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