我有一个表测试(id,名称)。

我需要插入值,如:用户的日志,'我的用户',客户的。

 insert into test values (1,'user's log');
 insert into test values (2,''my users'');
 insert into test values (3,'customer's');

我得到一个错误,如果我运行上述任何语句。

如果有任何正确的方法,请分享。我不想要任何事先准备好的声明。

是否可以使用sql转义机制?


当前回答

如果你需要在Pg内部完成工作:

to_json(值)

https://www.postgresql.org/docs/9.3/static/functions-json.html#FUNCTIONS-JSON-TABLE

其他回答

在postgresql中,如果你想插入带有' In it '的值,那么你必须给额外的'

 insert into test values (1,'user''s log');
 insert into test values (2,'''my users''');
 insert into test values (3,'customer''s');

根据PostgreSQL文档(4.1.2.1.;字符串常量):

若要在字符串常量中包含单引号字符,请写入 两个相邻的单引号,例如:“戴安的马”。

另请参阅standard_conforming_strings参数,该参数控制是否使用反斜杠进行转义。

你必须添加一个额外的单引号-> ',并像下面的例子一样对它们进行双引号-> ' '是标准的方式,当然有效:

错误方式:'user's log' 正确的方法:“用户的日志”

问题:

insert into test values (1,'user's log');
insert into test values (2,''my users'');
insert into test values (3,'customer's');

解决方案:

insert into test values (1,'user''s log');
insert into test values (2,'''my users''');
insert into test values (3,'customer''s');

你可以使用postrgesql chr(int)函数:

insert into test values (2,'|| chr(39)||'my users'||chr(39)||');

如果你需要在Pg内部完成工作:

to_json(值)

https://www.postgresql.org/docs/9.3/static/functions-json.html#FUNCTIONS-JSON-TABLE