将值插入到 PostgreSQL 中的数组列

use*_*255 6 sql postgresql

我有以下结构的表“详细信息”

id     status1      status2    names
 1    approved     rejected     NULL
 2    approved     rejected     NULL
 3    approved     rejected     NULL
 4    rejected     rejected     NULL
Run Code Online (Sandbox Code Playgroud)

我想使用默认值 {john,smith} 将值插入到数组列“名称”中

例子:我需要

  id     status1      status2    names
   1    approved     rejected   {john,smith}
   2    approved     rejected   {john,smith}
   3    approved     rejected   {john,smith}
   4    rejected     rejected   {john,smith}
Run Code Online (Sandbox Code Playgroud)

我写的时候失败了

INSERT INTO details (names) VALUES(ARRAY['john', 'smith']);
Run Code Online (Sandbox Code Playgroud)

Mar*_*fin 13

如果您想使用新值保留现有值:

UPDATE details SET names = names || '{john, smith}';
Run Code Online (Sandbox Code Playgroud)


小智 3

INSERT创建全新的- 但您想要更改现有的行,因此您需要使用UPDATE

update details 
  set names  = ARRAY['john', 'smith'];
Run Code Online (Sandbox Code Playgroud)