1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/bin/bash
- # 数据库连接信息
- DB_NAME="www_359844_cn"
- DB_USER="www_359844_cn"
- DB_PASSWORD="kdGSRtw4hy5HJAjc"
- DB_HOST="localhost"
- DB_PORT="3306"
- # 表名和条件
- TABLE_NAME="fa_admin_log"
- CONDITION="admin_id = 3"
- echo "开始删除数据库 $DB_NAME 中表 $TABLE_NAME 的数据..."
- echo "删除条件: $CONDITION"
- # 首先查询要删除的数据数量
- echo "查询要删除的数据数量..."
- COUNT_QUERY="SELECT COUNT(*) as count FROM $TABLE_NAME WHERE $CONDITION;"
- COUNT_RESULT=$(mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "$COUNT_QUERY" 2>/dev/null | tail -n 1)
- if [ $? -eq 0 ]; then
- echo "将要删除 $COUNT_RESULT 条数据"
-
- # 检查是否在交互式终端中运行
- if [ -t 0 ]; then
- # 交互式终端,询问用户确认
- echo "请确认是否删除这些数据?"
- echo "输入 'yes' 确认删除,输入其他内容取消操作:"
- read -r confirm
- if [[ "$confirm" == "yes" ]]; then
- CONFIRM_DELETE=true
- else
- CONFIRM_DELETE=false
- fi
- else
- # 非交互式终端,直接执行删除
- echo "非交互式终端,直接执行删除操作..."
- CONFIRM_DELETE=true
- fi
-
- if [ "$CONFIRM_DELETE" = true ]; then
- echo "正在执行删除操作..."
- # 执行删除操作
- DELETE_QUERY="DELETE FROM $TABLE_NAME WHERE $CONDITION;"
- mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "$DELETE_QUERY"
-
- if [ $? -eq 0 ]; then
- echo "删除成功!"
-
- # 验证删除结果
- VERIFY_QUERY="SELECT COUNT(*) as count FROM $TABLE_NAME WHERE $CONDITION;"
- VERIFY_RESULT=$(mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "$VERIFY_QUERY" 2>/dev/null | tail -n 1)
- echo "删除后剩余符合条件的记录数: $VERIFY_RESULT"
- else
- echo "删除失败!请检查数据库连接和权限。"
- exit 1
- fi
- else
- echo "操作已取消。"
- fi
- else
- echo "查询失败!请检查数据库连接信息。"
- exit 1
- fi
|