我有一個表「temp」具有兩個屬性:integer,text []。陣列內的大括號 - postgresql
我想用大括號插入數組中的記錄。 例如像這樣的記錄:
1, {'1{c}1','a'}
其中1是整數,且「1 {C} 1」是陣列和「a」的陣列的第二元件的第一元件。
我嘗試了簡單地插入這樣的:
INSERT INTO temp VALUES (id, '{'1{c}1','a'}');
,但它說,格式不正確。
我有一個表「temp」具有兩個屬性:integer,text []。陣列內的大括號 - postgresql
我想用大括號插入數組中的記錄。 例如像這樣的記錄:
1, {'1{c}1','a'}
其中1是整數,且「1 {C} 1」是陣列和「a」的陣列的第二元件的第一元件。
我嘗試了簡單地插入這樣的:
INSERT INTO temp VALUES (id, '{'1{c}1','a'}');
,但它說,格式不正確。
按照PostgreSQL documentation for arrays,
你可以把雙引號的任何元素的值,而且必須這樣做,如果它包含逗號或者花括號。
正確的語法將是這樣的:
INSERT INTO "temp" VALUES (1, '{"1{c}1",a}');
你可以看到一個完整的,工作example on SQL fiddle。
作爲補充,它也可以使用數組構造函數,我認爲這是更安全的使用,因爲數組元素只是SQL常數,你也可以使用數組構造函數內的表達式:
insert into "temp" values(1, array['1{c}1','a']);
它清楚這是一串字符串,而且這也是
insert into "temp" values(1, array['1','2']);
謝謝馬克。 – DarkCoffee
你也可以對數組使用'array ['1 {c} 1','a']'表示法,這樣引用更少的麻煩。 –