sql - 使用双引号插入 Postgres DB 不起作用
问题描述
我正在编写一个记录与 Facebook Messenger 机器人交互的函数。用户所说的任何内容都记录在 PostgreSQL 数据库中。
我的插入语句如下所示:
INSERT INTO interactions (fbid,date,time,event) VALUES ('senderid','2018-10-
01','11:15:48','text')
将“senderid”视为 20 位数字,将“文本”视为用户所说的任何内容。
现在,如果来自用户的文本不包含撇号字符,则上述语句有效。但是,有时文本确实包含撇号。在这些情况下,插入不起作用。
例如,如果用户说“让我们聊天”,那么我的 SQL 如下所示:
INSERT INTO interactions (fbid,date,time,event) VALUES
('senderid','2018-10-01','11:15:19','Let's Chat!')
我收到以下错误:
Query result: error: syntax error at or near "s"
我知道这是因为我需要避开撇号。我已经尝试通过在我的插入语句中使用双引号来解决这个问题,如下所示:
INSERT INTO interactions (fbid,date,time,event) VALUES ("senderid","2018-09-
28","10:50:07","Let's chat")
但是当我这样做时,我收到以下错误:
ERROR: column "senderid" does not exist
所以我有两个问题:
- 我可以在 SQL 插入中使用双引号吗?
- 如果我不能在 SQL 插入中使用双引号,我将如何转义撇号字符,记住可能并不总是撇号?
解决方案
请尝试以下操作:您需要使用单引号两次以防撇号,例如 let's will be let''s
INSERT INTO interactions (fbid,date,time,event) VALUES ('senderid','2018-09-
28','10:50:07','Let''s chat')
推荐阅读
- c# - GroupBy 键值对列表然后重新组合结果
- c# - 这段 C# 代码是否足以唯一标识一台计算机?
- java - 如何解决创建索引时的映射问题?
- ionic-framework - 我无法安装@ionic/cli-plugin-proxy:1.3.0
- android - 集成到现有的 Android 应用程序中,获取错误 null 不是对象(评估 'RNGestureHandlerModule.Direction)
- asp.net-core-mvc - OData 无效操作异常。错误请求 - 查询语法错误
- wordpress - 在functions.php中自动生成脚本
- typescript - 是否可以将函数值的返回分配给泛型类型?
- java - 如何计算从0到n的所有数字的总和?
- google-chrome - HTTP 请求响应未在 Chrome 中显示