gpt4 book ai didi

MySQL 使用 Select/Join 更新表

转载 作者:行者123 更新时间:2023-11-29 07:44:42 25 4
gpt4 key购买 nike

请注意:我为此使用 MySQL Workbench,因此一些错误可能与此具体相关(我不敢 100% 确定)

嗨,

我正在为我的大学开发一个项目,我接受一个 CSV 文件,其中包含客人列表和他们感兴趣的类(class)区域等信息。CSV 文件将包含感兴趣区域的实际名称,如下所示来自注册网页(开放日)。

我正在尝试获取客人 (joinTest) 表中的兴趣区域,连接到兴趣表(包含他们的 ID 号以及兴趣名称)并填充客人中的 InterestID 列表。

我现在正在使用测试表,直到我得到正确的 SQL。这是我当前使用的 SQL:

UPDATE joinTest
SET interestID =
(
SELECT interest.interestID FROM joinTest
LEFT JOIN interest on joinTest.interestName = interest.interestName
)
WHERE interestID IS NULL;

我已经尝试过并收到错误

Error Code: 1093. You can't specify target table 'joinTest' for update in FROM clause

因此,我假设在 UPDATE 中加入联接时无法使用 SELECT 子句。

然后我尝试了这个:

UPDATE joinTest
INNER JOIN interest
ON jointest.interestname = interest.interestName
SET joinTest.interestID = interest.interestID;

我收到此错误:

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.

我现在完全被难住了。我不知道从这里该去哪里。

如果需要更多信息,请告诉我。

最佳答案

SQL_SAFE_UPDATES 默认情况下处于禁用状态,但 Workbench 会启用它。就像错误消息所说:切换首选项 -> SQL 查询中的选项并重新连接。

除非您在网络应用程序 (php) 中专门打开 SQL_SAFE_UPDATES,否则不应存在此错误。

关于MySQL 使用 Select/Join 更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28141525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com