什么是 UPDATE INTO?
在标准 SQL 中,并没有 UPDATE INTO 这一语法。常见的误解是将 INSERT INTO 和 UPDATE 混淆。
正确的更新语句应使用 UPDATE,其基本语法如下:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
UPDATE 语句示例
假设我们有一个名为 users 的表,要将用户 ID 为 5 的邮箱更新:
UPDATE users
SET email = 'newemail@example.com'
WHERE id = 5;
⚠️ 注意:若省略 WHERE 子句,将更新表中所有记录!
常见误区
- 误写为
UPDATE INTO table ...—— 这是无效语法。 - 忘记
WHERE条件,导致全表被意外修改。 - 在不支持子查询的旧数据库中使用复杂
SET表达式。
替代方案:UPSERT(插入或更新)
某些数据库(如 PostgreSQL、MySQL)支持“插入或更新”操作,例如:
- MySQL:
INSERT INTO ... ON DUPLICATE KEY UPDATE - PostgreSQL:
INSERT INTO ... ON CONFLICT DO UPDATE
这些并非标准 SQL,但可实现类似“update if exists, else insert”的逻辑。