所有记录WHERE USID = 49
的更新声明是什么?
这就是我目前所拥有的:
INSERT INTO ADDRESSES (AddressLine1, AddressLine2, PostCode)
VALUES ('1A','2B', '3C') WHERE USID = 49;
但我在关键字WHERE
附近收到错误"语法错误。" 我在这里做错了什么?
答案 0 :(得分:5)
<强> TL; DR:强>
如果要在表格中创建新记录,则使用 INSERT
。您似乎并不想添加新记录。如果您要修改现有记录,请改为使用UPDATE
:
UPDATE ADDRESSES
SET AddressLine1 = '1A', AddressLine2 = '2B', PostCode = '3C'
WHERE USID = 49;
解释为什么INSERT … WHERE
语法无效:
WHERE
子句的目的是排除所有符合指定条件的行。当INSERT
时,根本不需要查看任何现有行;您想要创建 new 行,这些行完全独立于任何现有记录。因此INSERT
不需要WHERE
子句。事实上,它不允许它,因为它根本没有任何意义。
另一方面,对于UPDATE
,WHERE
子句是有意义的,因为您正在处理现有行,并且您可能不想更改所有现有行,但只是一个子集。 WHERE
子句允许您定义将要更新的行的子集。