mysql - 更新到 Mysql 表 w/Inner Join on Information Schema 不允许
问题描述
因此,我正在尝试将使用连接语句创建的表更新为信息模式。以下是给出错误的代码:ERROR 3550 (HY000): Information schema queries do not support the 'FOR UPDATE' clause.
UPDATE progress.db_progress dp
INNER JOIN information_schema.tables t
ON dp.table_name = t.TABLE_NAME
set dp.already_done = (SELECT
CASE
WHEN t.TABLE_ROWS > 0 THEN 1
ELSE 0
END)
WHERE t.table_schema = 'sanitizedfooname';
为了完整起见,以下是表格描述:
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| table_name | varchar(255) | YES | | NULL | |
| needs_migration | tinyint(1) | YES | | NULL | |
| already_done | tinyint(1) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
显然我并没有尝试更新信息架构,但似乎我认为我是。此外,我本可以发誓我之前运行过查询并且它有效,但现在我质疑我的理智,我的意思是记忆。这是在 AWS RDS、MYSQL 8 上,如果有任何差异的话。
那么......为什么没有卡纸时会说卡纸?
解决方案
推荐阅读
- javascript - 文本垂直出现在反应引导程序中
- javascript - prev() 方法不适用于前一个元素
- java - 实体更新后休眠搜索6更新弹性搜索索引
- python - 我在我的代码中找不到错误,以及为什么我没有成为 a 和 b 的答案
- karate - 空手道 DSL - 使用重试直到检查数组,直到所有项目中都存在特定的键值对
- node.js - loopback 4 使用中间件 prometheus-api-metrics
- c - doxygen compact #define 文档
- javascript - 将对象数组合并为单个对象
- flutter - 在 Flutter 的许多不同类中使用变量的最佳实践是什么?
- azure-devops - Azure Devops / Kudusync 将错误的包部署到 Azure Function