Quantcast
Channel: Galide
Viewing all articles
Browse latest Browse all 25

MYSQL: drop all tables without dropping the database

$
0
0
A very useful little script to let you drop all tables in a database without deleting the actual database (in case for instance you don't have the right to drop the actual database).

#!/bin/bash
MUSER="$1"
MPASS="$2"
MDB="$3"

# Detect paths
MYSQL=$(which mysql)
AWK=$(which awk)
GREP=$(which grep)

if [ $# -ne 3 ]
then
    echo "Usage: $0 {MySQL-User-Name} {MySQL-User-Password} {MySQL-Database-Name}"
    echo "Drops all tables from a MySQL database"
    exit 1
fi

TABLES=$($MYSQL -u $MUSER -p$MPASS $MDB -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' )

for t in $TABLES
do
    echo "Deleting $t table from $MDB database..."
    $MYSQL -u $MUSER -p$MPASS $MDB -e "drop table $t"
done

Save this as drop.sh and run ./drop.sh username password databasename.

Viewing all articles
Browse latest Browse all 25

Trending Articles