在没有首先检索数组的情况下插入PostrgeSQL数组

时间:2015-05-27 11:29:50

标签: sql arrays postgresql

我在PostgreSQL表中有一个专栏

name

我需要能够为数组添加日期。简单的方法是获取数组并添加元素然后重写它。

另一种方法是获取数组,对其进行计数并使用以下语法设置最后一个值。

modification_dates timestamp without time zone[]

有没有办法用一个SQL语句来做?

2 个答案:

答案 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 ...;

您无法在现有元素之间插入新元素。