UPDATE
引入或更新于:v1.2.699
使用新值更新表中的行,可选择使用其他表中的值。
原子操作
Databend 通过原子操作确保数据完整性。插入、更新、替换和删除操作要么完全成功,要么完全失败。
语法
UPDATE <目标表>
SET <列名> = <值> [ , <列名> = <值> , ... ] -- 设置新值
[ FROM <其他表> ] -- 使用其他表中的值
[ WHERE <条件> ] -- 过滤行
示例
以下示例演示了如何直接更新表中的行,以及如何使用另一个表中的值来更新行。
我们将首先创建一个 bookstore 表并插入一些示例数据,然后直接更新特定行。之后,我们将使用第二个表 book_updates,根据 book_updates 中的值更新 bookstore 表中的行。
步骤 1:创建 bookstore 表并插入初始数据
在此步骤中,我们创建一个名为 bookstore 的表,并填充一些示例书籍数据。
CREATE TABLE bookstore (
book_id INT,
book_name VARCHAR
);
INSERT INTO bookstore VALUES (101, 'After the death of Don Juan');
INSERT INTO bookstore VALUES (102, 'Grown ups');
INSERT INTO bookstore VALUES (103, 'The long answer');
INSERT INTO bookstore VALUES (104, 'Wartime friends');
INSERT INTO bookstore VALUES (105, 'Deconstructed');
步骤 2:查看更新前的 bookstore 表
我们现在可以检查 bookstore 表的内容,查看初始数据。
SELECT * FROM bookstore;
┌───────────────────────────────────────────────┐
│ book_id │ book_name │
├─────────────────┼─────────────────────────────┤
│ 102 │ Grown ups │
│ 103 │ The long answer │
│ 101 │ After the death of Don Juan │
│ 105 │ Deconstructed │
│ 104 │ Wartime friends │
└───────────────────────────────────────────────┘