我在PostgreSQL表中有一个专栏
name
我需要能够为数组添加日期。简单的方法是获取数组并添加元素然后重写它。
另一种方法是获取数组,对其进行计数并使用以下语法设置最后一个值。
modification_dates timestamp without time zone[]
有没有办法用一个SQL语句来做?
答案 0 :(得分:3)
您可以根据postgres documentation使用连接运算符或array_cat
:
UPDATE my_table SET timestamp = timestamp || newDate;
或
UPDATE my_table SET timestamp = array_cat(timestamp, ARRAY[newDate]);
首选方式是前者。添加条件将像在任何其他更新查询中一样工作。
答案 1 :(得分:1)
要追加数组的新值,请使用标准SQL concatenation operator:
update my_table
set modification_dates = modification_dates||current_timestamp
where ...;
您无法在现有元素之间插入新元素。