Access 2016 - 简单更新查询提供“操作必须使用可更新查询”错误

时间:2017-11-07 02:42:47

标签: sql ms-access sql-update

我正在尝试将from selenium import webdriver driver = webdriver.Chrome() driver.get('http://reactdropzone.azurewebsites.net/example/') input_field = driver.find_element_by_xpath('.//input[@type="file"]') input_field.send_keys('full_path_to_your_file.png') 字段值从color表转移到dress表,因为我稍微更改了数据库的结构。

这是查询,它很简单,但我一直收到错误。

purchase

我也尝试过没有JOIN并将条件放在WHERE子句中但我得到了同样的错误。

UPDATE purchase
SET purchase.color = (SELECT dress.color
                      FROM dress INNER JOIN purchase
                      ON dress.ID = purchase.dressID);

我还读到这个错误有时是由于文件是“只读”或其他许可问题,我已经尝试了所有内容,但似乎没有任何工作。

Error I'm getting

编辑:也试过这个,但我得到“遗失操作员”错误

UPDATE purchase
SET purchase.color = (SELECT dress.color
                      FROM dress, purchase
                      WHERE dress.ID = purchase.dressID);

2 个答案:

答案 0 :(得分:1)

我认为你真的想要一个简单的相关子查询:

UPDATE purchase
    SET color = (SELECT d.color
                 FROM dress as d 
                 WHERE d.ID = purchase.dressID
                );

如果子查询中可能存在重复项,请尝试TOP 1

UPDATE purchase
    SET color = (SELECT TOP 1 d.color
                 FROM dress as d 
                 WHERE d.ID = purchase.dressID
                );

答案 1 :(得分:0)

感谢Ken White的链接,我找到了答案。

这个带有奇怪关键字'DISTINCTROW'的查询解决了这个问题。

UPDATE DISTINCTROW purchase
INNER JOIN dress ON purchase.dressID = dress.ID
SET purchase.color = dress.color;