我有一个表“temp”,它有两个属性:整数、文本[]。
我想在数组内插入一条带有大括号的记录。例如这样的记录:
1, {'1{c}1','a'}
其中 1 是整数,“1{c}1”是数组的第一个元素,“a”是数组的第二个元素。
我尝试了这样的简单插入:
INSERT INTO temp VALUES (id, '{'1{c}1','a'}');
但它说这是格式错误的。
我有一个表“temp”,它有两个属性:整数、文本[]。
我想在数组内插入一条带有大括号的记录。例如这样的记录:
1, {'1{c}1','a'}
其中 1 是整数,“1{c}1”是数组的第一个元素,“a”是数组的第二个元素。
我尝试了这样的简单插入:
INSERT INTO temp VALUES (id, '{'1{c}1','a'}');
但它说这是格式错误的。
此外,还可以使用数组构造函数,我认为使用起来更安全,因为数组元素只是 SQL 常量,您也可以在数组构造函数中使用表达式:
insert into "temp" values(1, array['1{c}1','a']);
很明显这是字符串数组,这也是
insert into "temp" values(1, array['1','2']);
您可以在任何元素值周围加上双引号,如果它包含逗号或花括号,则必须这样做。
正确的语法应该是这样的:
INSERT INTO "temp" VALUES (1, '{"1{c}1",a}');
您可以在 SQL fiddle 上看到一个完整的工作示例。
你不想要那些内部单引号。
INSERT INTO temp VALUES (id, '{1{c}1,a}');