Мне нужно было что-то, что дало бы мне код выхода для использования в Bash. Это основано на твердом ответе @ longneck. Если в базе данных есть таблицы, оператор select
установит для столбца contents
значение «есть таблицы». В этом случае Grep вернет успешное значение 0
, в противном случае вернет ненулевое значение.
#!/bin/bash
user=username
pw=passwd
db=database
mysql -u ${user} -p"${pw}" -D ${db} --execute="SELECT CASE COUNT(*) WHEN '0' THEN 'empty database' ELSE 'has tables' END AS contents FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema = '${db}';" | grep 'has tables'
echo $?