从 shell 脚本中,如何检查 MySQL 数据库中的表是否存在?

Rat*_*uri 8 mysql shell shell-scripting

我正在尝试编写一个脚本,该脚本允许用户选择他需要对表格进行的操作。我想检查表是否存在。如果它存在,我将继续其他事情,否则我退出说表不存在。我怎么可能做到这一点。

qua*_*nta 12

if [ $(mysql -N -s -u root -p -e \
    "select count(*) from information_schema.tables where \
        table_schema='db_name' and table_name='table_name';") -eq 1 ]; then
    do something
else
    echo "table <table_name> does not exist"
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)
  • -N 跳过列名
  • -s 对于非表格输出

  • 要让您的脚本在不停止并提示您输入密码的情况下登录 MySQL,您可以在您的主目录中创建一个 `.my.cnf` 文件并添加一个包含 `password="my_password"` 的 `[client]` 块。查看手册中有关 [用户选项文件](http://dev.mysql.com/doc/refman/5.1/en/option-files.html) 的部分。 (2认同)

Gle*_*len 4

在 MySQL 中,您可以在 shell 中使用 -e

mysql -e "desc main_db.clients" > /dev/null 2>&1
echo $?
Run Code Online (Sandbox Code Playgroud)