mysql 数据表维护

这两天在处理一个很有意思的问题:

由于公司大楼突然断电,来电从启后,邮件服务器里面的一个mysql 附件数据表无法使用了。在尝试使用 mysql 的修复工具无法完成修复工作后,决定通过附件文件的存储特点来检索附件文件,生成数据表所需要的各个字段。

附件数据表如下:

 

其中 id: 邮件编号,file_name:文件名称,file_size: 文件大小,att_id:表示文件中附件的序号(一个文件中可以有多个附件),date_added: 表示添加的日期。

附件文件的存储特点:

因此写了两段脚本:

第一个脚本:检索文件夹中不包含.eml 文件的这些文件的完整路径 ,并将它们存储到 att_file_name_doc.txt  中。

#! /bin/bash

function read_dir(){
    for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
    do
        if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
        then
              read_dir $1"/"$file #是目录则递归读取目录下的文件
        else
              var=$1"/"$file

              if [ "${var##*.}" != "eml" ]; then  #不是.eml 的文件,则把文件路径保存到 att_file_name_doc.txt 中
                  echo $1"/"$file >> /home/wwwroot/att_file_name_doc.txt
              fi
        fi
    done
}


#读取第一个参数
read_dir $1

第二个脚本:根据这些文件的名称获取邮件的编编号,名称,大小,顺序,创建时间。

#! /bin/bash

echo $(date)
n=1
count_id=''
for filename in $( cat /home/wwwroot/att_file_name_doc.txt)
do
  time=$(stat $filename | grep Modify|awk '{print $2 "\t" $3}' |awk -F"." '{print $1}')
  size=$(stat $filename | grep Size: |awk '{print $2}')
  id=$( echo $filename |awk -F "/" '{print $6}' )
  name=$( echo $filename |awk -F "/" '{print $8}' )
  if [ "$id" == "$count_id" ]
  then
     n=$(($n+1))
  else
     n=1
  fi

  count_id=$id

  echo $id","$name","$size","$n","$time >>/home/wwwroot/att_csv.txt
done
echo "done"$(date)

登录 mysql 选择 数据库,导入数据

LOAD DATA LOCAL INFILE '/home/wwwroot/att_csv.txt' INTO TABLE arc_att
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据表的基本操作包括创建数据表、插入数据、查询数据、更新数据和删除数据。创建数据表时,需要指定表名和字段名,并为每个字段指定数据类型和约束条件。可以使用CREATE TABLE语句来创建数据表。插入数据时,使用INSERT INTO语句,指定要插入的数据和表名。查询数据可以使用SELECT语句,可以指定查询条件和排序规则。更新数据可以使用UPDATE语句,根据指定的条件更新字段的数值。删除数据可以使用DELETE FROM语句,根据指定的条件删除数据行。这些基本操作可以帮助用户在MySQL数据库中进行数据管理和交互,是数据库操作的基础知识。 另外,MySQL数据表的基本操作还包括对表结构的修改和索引的创建。可以使用ALTER TABLE语句对表结构进行修改,包括添加、修改和删除字段等操作。创建索引可以加快数据的检索速度,可以使用CREATE INDEX语句来创建索引。除此之外,还可以使用DESCRIBE语句来查看数据表的结构,使用SHOW TABLES语句来查看数据库中的数据表列表。这些操作可以帮助用户更好地管理和维护MySQL数据库中的数据表。 总之,对于MySQL数据表的基本操作,包括创建数据表、插入数据、查询数据、更新数据、删除数据、修改表结构和创建索引等操作,是数据库管理和交互的基础,对于数据库开发和管理都是非常重要的知识点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值