码迷,mamicode.com
首页 > 系统相关 > 详细

删除数据表和清空数据表的内容(保存表结构)的SHELL脚本

时间:2015-08-20 14:56:23      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

A,删除指定数据库的所有数据表

#!/bin/bash
# 删除mysql中所有表
# 示例:
# Usage: ./script user password dbnane
# Usage: ./script user password dbnane server-ip
# Usage: ./script user password dbnane mysql.nixcraft.in
# ---------------------------------------------------
 
MUSER="$1"
MPASS="$2"
MDB="$3"
 
MHOST="localhost"
 
[ "$4" != "" ] && MHOST="$4"
 
# 设置命令路径
MYSQL=$(which mysql)
AWK=$(which awk)
GREP=$(which grep)
 
# help
if [ ! $# -ge 3 ]
then
 echo "Usage: $0 {MySQL-User-Name} {MySQL-User-Password} {MySQL-Database-Name} [host-name]"
 echo "Drops all tables from a MySQL"
 exit 1
fi
 
# 连接mysql数据库
$MYSQL -u $MUSER -p$MPASS -h $MHOST -e "use $MDB"  &>/dev/null
if [ $? -ne 0 ]
then
 echo "Error - 用户名或密码无效,无法连接mysql数据库"
 exit 2
fi
 
TABLES=$($MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e show tables | $AWK { print $1} | $GREP -v ^Tables )
 
# make sure tables exits
if [ "$TABLES" == "" ]
then
 echo "Error - 在数据库中 $MDB 未发现相关表"
 exit 3
fi
 
# let us do it
for t in $TABLES
do
 echo "Deleting $t table from $MDB database..."
 $MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e "drop table $t"
done

 

B,清空数据表的内容(保存表结构)

#!/bin/bash
# 删除mysql中所有表
# 示例:
# Usage: ./script user password dbnane
# Usage: ./script user password dbnane server-ip
# Usage: ./script user password dbnane mysql.nixcraft.in
# ---------------------------------------------------
 
MUSER="$1"
MPASS="$2"
MDB="$3"
 
MHOST="localhost"
 
[ "$4" != "" ] && MHOST="$4"
 
# 设置命令路径
MYSQL=$(which mysql)
AWK=$(which awk)
GREP=$(which grep)
 
# help
if [ ! $# -ge 3 ]
then
 echo "Usage: $0 {MySQL-User-Name} {MySQL-User-Password} {MySQL-Database-Name} [host-name]"
 echo "Drops all tables from a MySQL"
 exit 1
fi
 
# 连接mysql数据库
$MYSQL -u $MUSER -p$MPASS -h $MHOST -e "use $MDB"  &>/dev/null
if [ $? -ne 0 ]
then
 echo "Error - 用户名或密码无效,无法连接mysql数据库"
 exit 2
fi
 
TABLES=$($MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e show tables | $AWK { print $1} | $GREP -v ^Tables )
 
# make sure tables exits
if [ "$TABLES" == "" ]
then
 echo "Error - 在数据库中 $MDB 未发现相关表"
 exit 3
fi
 
# let us do it
for t in $TABLES
do
 echo "Truncate $t table from $MDB database..."
 $MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e "TRUNCATE TABLE  $t"
done

技术分享

删除数据表和清空数据表的内容(保存表结构)的SHELL脚本

标签:

原文地址:http://www.cnblogs.com/aguncn/p/4745043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!