我在 POSTGRESQL 中有表。如果表中不存在,如何插入行或通过在最后一个表中附加数组来更新行(添加到数组应在最后一列添加新文本,例如“1.First;”“1.First;2.Second;”) ” “1.第一;2.第二;2.第二;”等等)?
这是我想使用的代码:
INSERT INTO public.history (arm_number, dt_action)
VALUES ('1', '{"1. First;"}')
ON CONFLICT (arm_number)
DO UPDATE SET dt_action = ARRAY_APPEND(EXCLUDED.dt_action, '2. Second;');
当我使用它时,我只得到“1.第一;2.第二;”我该怎么办?
使用 ARRAY 时,在这里工作得很好:
CREATE TABLE public.history(arm_number int PRIMARY KEY , dt_action text[]);
INSERT INTO public.history (arm_number, dt_action)
VALUES ('1', '{"1. First;"}')
ON CONFLICT (arm_number)
DO UPDATE SET dt_action = ARRAY_APPEND(EXCLUDED.dt_action, '2. Second;');
INSERT INTO public.history (arm_number, dt_action)
VALUES ('1', '{"1. First;"}')
ON CONFLICT (arm_number)
DO UPDATE SET dt_action = ARRAY_APPEND(EXCLUDED.dt_action, '2. Second;');
SELECT arm_number
, unnest(dt_action)
FROM public.history;
结果: 1,1。第一的; 1,2。第二;