在 postgres 中,我如何使用撇号字符作为文字

In postgres how do i use the apostrophe character as a literal

我正在尝试将角色 ’ 的实例转换为 ’,但不知道该怎么做。

这只是检查我的语法是否正确,但没有改变字符

ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’','’') where name ~ '[’]+';"|psql jthinksearch
UPDATE 7284

如果我不转义 ' 失败:

ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’',''') where name ~ '[’]+';"|psql jthinksearch
ERROR:  syntax error at or near "["
LINE 1: ...ease set name = translate(name,'’',''') where name ~ '[’]+';

如果我转义它,它仍然会失败并出现不同的错误

            ^
ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’','\'') where name ~ '[’]+';"|psql jthinksearch
ERROR:  syntax error at or near "["
LINE 1: ...ase set name = translate(name,'’','\'') where name ~ '[’]+';
                                                                 ^

我会用 replace():

update musicbrainz.release
    set name = replace(name, '’', '''')
    where name like '%’%';

要转义单引号,请将其加倍。