所有记录的更新声明是WHERE USID = 49什么?
这就是我目前拥有的:
INSERT INTO ADDRESSES (AddressLine1, AddressLine2, PostCode)
VALUES ('1A','2B', '3C') WHERE USID = 49;
Run Code Online (Sandbox Code Playgroud)
但我收到错误"关键字附近的语法不正确WHERE".我在这做错了什么?
TL; DR:
INSERT当您要在表中创建新记录时使用.您似乎并不想添加新记录.如果要修改现有记录,请UPDATE改用:
UPDATE ADDRESSES
SET AddressLine1 = '1A', AddressLine2 = '2B', PostCode = '3C'
WHERE USID = 49;
Run Code Online (Sandbox Code Playgroud)
解释为什么INSERT … WHERE语法无效:
WHERE子句的目的是排除除满足指定条件的行之外的所有行.在INSERT-ing时,根本不需要查看任何现有行; 您想要创建新行,这些行完全独立于任何现有记录.因此INSERT不需要WHERE条款.事实上,它不允许它,因为它根本没有任何意义.
随着UPDATE,在另一方面,WHERE条款是有道理的,因为你是在处理与现有行,你可能不希望更改所有现有行,但只有一个子集.该WHERE子句允许您定义将要更新的行的子集.
| 归档时间: |
|
| 查看次数: |
618 次 |
| 最近记录: |