如何用'输入文字进餐桌?

时间:2016-01-25 14:14:46

标签: sql postgresql

我有以下文字:

Price is .....

return policy is....

Mega's accept....

我想将整个文本插入TEXT

类型的列中

我写的是:

Insert into A (id,msg) values (5, '    Price is .....

    return policy is....

    Mega's store online ....')

Mega's是商店的名称。此名称中的'会导致查询认为它是文本的结尾......

所以我收到错误消息:

  

错误:列"价格是....."不存在

我尝试使用SELECT插入,但这也不起作用。我收到相同的错误消息。

如何执行此插入?

3 个答案:

答案 0 :(得分:2)

您可以将字符串中的单引号加倍:'Mega''s store online'

或者,您可以通过函数quote_literal()传递任何字符串,然后处理正确的引用和其他问题,例如SQL-injection。当字符串来自某个允许在字符串中使用单引号的应用程序时,这很有用。

INSERT命令应为:

Insert into A (id,msg) values (5, '    Price is .....'
'return policy is....'
'Mega''s store online ....');

你可以在多行上打破长字符串,但每行必须有一个开始和结束的单引号。

答案 1 :(得分:2)

如果您不想(或不能)更改实际文本,请使用dollar quoting。只需将第一个和最后一个process替换为例如'

$$

您需要使用实际文本中没有出现的分隔符。如果您的文字可以包含Insert into A (id,msg) values (5, $$ Price is ..... return policy is.... Mega's store online ....$$) ,您可以使用不同的内容,例如:$$

$not_there$

答案 2 :(得分:0)

我会使用CHAR(39)。

示例:

Mega' + CHAR(39) + 's store online....'

供参考:http://www.techonthenet.com/ascii/chart.php