这是一个如此简单的查询.我需要将Bookings表的LinkedBookings列(整型数组数据类型)更新为它自己的ID.下面的查询对我不起作用.

update public."Booking" b set "LinkedBookings" = {"Id"}

上面给出了下面的错误,

SQL Error [42601]: ERROR: syntax error at or near "{"

我搜索了整个互联网和postgres文档,找不到任何合适的简单查询.我可以理解有一种方法可以写一个Pg函数.而不是做这么大的事情,没有任何简单的查询吗?

推荐答案

假设LinkedBookings是数组列,并且假设您想要将其设置为仅包含每行的Id的数组,则正确的SQL应该是>;>;

   UPDATE public."Booking" b 
    SET "LinkedBookings" = ARRAY[b."Id"];

Sql相关问答推荐

为什么Prisma生成唯一索引,而不是基于方案上的唯一列约束?

部分匹配表中元素的MariaDB查询查找结果

如何在Presto中将多个列合并到一个数组中

从字符串中删除";1、";和";2,";,而不删除";11、";和";12、";

我如何才能在付款人单列中拉出只有9个付款人单的人?

在VB.NET中如何在MS Access数据库中创建SQL项目历史库存卡

每个学校 Select N个最新的行,但跳过同一学生的重复行

在SQL查询中查找客户端的最短日期比较列和多行

在 PostgreSQL 中使用 ltree 列进行累积

如何判断小数点后千位是否不为0

在特定条件下使用 LAG,确定要采用什么 LAG 值?

SQL 查找 varchar 类型列及其值中多次出现的子字符串

基于变量的条件 WHERE 子句

如何根据 SQL Server 中 1 条语句中 SELECT 的结果进行 INSERT 或 UPDATE

使用给定的变量对在循环中执行更新语句

SQL:如何从时间戳数据生成时间序列并计算不同事件类型的累计总和?

多列上的 SQL UNIQUE 约束 - 它们的组合必须是唯一的还是至少其中之一?

面对来自以下两个代码的不同输出

并非所有变量都绑定在 PL SQL 函数中

从不同的表中 Select 包含单词列表的记录