更新SQL中与搜索语法匹配的特定行上的字段



我在SQLite3中有一个名为MachineData的表,它有以下标题:

  • ResourceId(主键(
  • 机器名称
  • 主要用户

表中填充了ResourceId,我需要对ResourceId进行查找,并在行中注入数据。

我尝试过以下语句,但它不喜欢我的语法。如果有任何帮助,我们将不胜感激?

INSERT INTO MachineData (PrimaryUser) VALUES ('Mickey Mouse') WHERE ResourceId LIKE '1001'

以及

INSERT INTO MachineData (PrimaryUser) VALUES ('Mickey Mouse') WHERE (SELECT ResourceId FROM MachineData LIKE '1001')

以及

INSERT INTO MachineData (PrimaryUser) VALUES ('Mickey Mouse') WHERE ResourceId EQUALS '1001'

这些人都没有决定表现得好,总是给我逻辑错误。

表格如下:

TABLENAME: MachineData

| ResourceId | MachineName | PrimaryUser | 
|============|=============|=============|
| 1001       |             |             |
| 1002       |             |             |
| 1003       |             |             |

我想让它看起来像这样:

| ResourceId | MachineName  | PrimaryUser  | 
|============|==============|==============|
| 1001       |              | Mickey Mouse |
| 1002       |              |              |
| 1003       |              |              |

您想要update吗?

UPDATE MachineData
SET PrimaryUser = 'Mickey Mouse'
WHERE ResourceId LIKE '1001';

我猜ResourceId是一个数字。如果是这样,就不应该使用字符串操作:

UPDATE MachineData
SET PrimaryUser = 'Mickey Mouse'
WHERE ResourceId LIKE 1001;

您所尝试的是插入一行已经在表中的内容。这就是你出错的原因。如果主键已经存在于给定的表中,则不能使用INSERT关键字。使用UPDATE查询,如下所示。

UPDATE MachineData SET PrimaryUser = 'Mickey Mouse' WHERE ResourceId LIKE '1001'

最新更新