【发布时间】:2020-02-04 02:59:25
【问题描述】:
当我尝试将字母数字值插入 Postgres DB 中的 TEXT 列时出现错误。这是表定义
]1
这是我用来向表中插入数据的查询
INSERT INTO sensor_data
(
time,
i1, i2, i3, i4,
i5, i6, i7, i8,
mrt,air_temperature,
humidity,tvoc, device_id)
VALUES (to_timestamp(1667595922) AT TIME ZONE 'UTC',
41.340000, 26.160000, 25.860000, 26.160000,
25.900000, 25.960000, 26.720000, 25.580000,
26.085000, 28.065536,
55.204773, 40.000000, 1a0032000947363339343638
);
这是我收到的错误消息
错误:“a0032000947363339343638”处或附近的语法错误 第 12 行:55.204773、40.000000、1a00320009473633...
当我输入这个查询时,它工作得很好。
INSERT INTO sensor_data
(
time,
i1, i2, i3, i4,
i5, i6, i7, i8,
mrt,air_temperature,
humidity,tvoc, device_id)
VALUES (to_timestamp(1667595922) AT TIME ZONE 'UTC',
41.340000, 26.160000, 25.860000, 26.160000,
25.900000, 25.960000, 26.720000, 25.580000,
26.085000, 28.065536,
55.204773, 40.000000, 10032000947363339343638
);
两个查询之间的唯一区别是 device_id 值。当值为“1a0032000947363339343638”时插入失败,当值为“10032000947363339343638”时插入失败。
即使数据类型是 TEXT,当我尝试插入“1a0032000947363339343638”时,为什么插入会失败?以及如何让表格接受 1a0032000947363339343638' 作为设备 ID?
【问题讨论】:
-
As documented in the manual 字符串常量在 SQL 中需要用单引号 (
') 括起来
标签: sql postgresql sql-insert string-constant