使用指定的表名和列名运行更新查询时出现错误:
UPDATE Temp SET Temp.Id='234',Temp.Name='Test'WHERE Id='245'
Run Code Online (Sandbox Code Playgroud)
这是错误:
ERROR: column "temp" of relation "temp" does not exist
LINE 1: UPDATE Temp SET Temp.Id='23...
^
********** Error **********
ERROR: column "temp" of relation "temp" does not exist
SQL state: 42703
Character: 24
Run Code Online (Sandbox Code Playgroud)
dez*_*zso 13
你不能(不用)使用表别名(或表名合格的列名)中SET
的条款UPDATE
。这甚至是有道理的,因为您只能在单个 中更新单个表UPDATE
,因此那里的列名没有歧义。
幸运的是,有用的文档明确提到了您的案例:
列名
由 命名的表中列的名称
table_name
。如果需要,可以使用子字段名称或数组下标来限定列名称。不要在目标列的规范中包含表的名称 - 例如,UPDATE tab SET tab.col = 1
无效。
因此,解决方案是简单地temp.
从SET
子句中删除:
UPDATE temp SET id = '234', name = 'Test' WHERE id = '245'
Run Code Online (Sandbox Code Playgroud)
笔记:
'mkjcvnd7y78r3tgbhvcjh'
进入您的id
专栏之类的事情?temp
而不是Temp
. 以后一种方式使用它可能会降低可读性(当然,这取决于您的偏好和习惯)。 归档时间: |
|
查看次数: |
17579 次 |
最近记录: |