2026-06-29 e15efbe0bcb1b5e5ea21f0c937635746a3143321
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
 
# 文件存储根目录
FILE_ROOT="/javaWork/product-inventory-management/file/prod"
 
# 输出SQL文件名
OUTPUT_SQL="update_blob_file_size.sql"
 
# 数据库配置
DB_USER="root"
DB_PASS="xd@123456.."
DB_NAME="product_inventory_management"
 
echo "开始扫描目录: $FILE_ROOT"
echo "-- 更新文件大小 SQL" > "$OUTPUT_SQL"
echo "-- 生成时间: $(date '+%Y-%m-%d %H:%M:%S')" >> "$OUTPUT_SQL"
echo "" >> "$OUTPUT_SQL"
 
# 扫描目录下所有文件并生成更新SQL
find "$FILE_ROOT" -type f | while read filepath; do
    filesize=$(stat -c%s "$filepath" 2>/dev/null || echo "0")
    filename=$(basename "$filepath")
    filename_escaped=$(echo "$filename" | sed "s/'/''/g")
    echo "UPDATE storage_blob SET byte_size = $filesize WHERE uid_filename = '$filename_escaped';" >> "$OUTPUT_SQL"
done
 
echo "SQL文件已生成: $OUTPUT_SQL"
echo "正在执行SQL更新..."
 
docker exec -i mysql mysql -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" < "$OUTPUT_SQL"
 
echo "更新完成!"