UPDATE ud_bucket SET objects_size = ( SELECT SUM(file_size) AS cnt FROM ud_file_res WHERE min_bucket_name = '001' AS mName ) WHERE min_bucket_name = mName; 这样对吗
时间: 2024-03-16 20:47:34 浏览: 60
获取文件夹的大小
5星 · 资源好评率100%
不对。在子查询中给 WHERE 子句设置别名是不允许的。因此,你需要对 SQL 语句进行一些修改。
正确的 SQL 语句应该是这样的:
```
UPDATE ud_bucket
SET objects_size = (
SELECT SUM(file_size) AS cnt
FROM ud_file_res
WHERE min_bucket_name = '001'
)
WHERE min_bucket_name = '001';
```
这个语句将会更新 ud_bucket 表中 min_bucket_name 为 '001' 的行的 objects_size 列,将其设为 ud_file_res 表中 min_bucket_name 为 '001' 的所有行的 file_size 列的总和。注意,这里将 WHERE 子句中的 min_bucket_name 直接写为 '001',因为 SET 子句中的对象已经指定了需要更新的行。
阅读全文