Mysql
Mysql CLI - 即使操作失敗也繼續執行
請考慮以下程式碼:
mysql -u root -p << MYSQL drop user '${test}'@'localhost'; drop database ${test}; create user '${test}'@'localhost' identified by '${psw}'; create database ${test}; GRANT ALL PRIVILEGES ON ${test}.* TO ${test}@localhost; MYSQL
程式碼為第一個命令輸出以下錯誤
drop user '${test}'@'localhost';
:錯誤 1396 (HY000): ‘${test}’@’localhost’ 的操作 DROP USER 失敗
我的問題
如果出現此錯誤,我怎樣才能讓程序忽略它,以便執行不會中斷?
例如,我如何確保程序會以這種方式執行:
“如果你已經有一個使用者,如果你已經有一個使用者
${test}
,如果你沒有,就繼續創建它”。當然,同樣的問題也適用於處理數據庫實例的第二個 drop 命令。
使用**
IF EXISTS
**條款:DROP USER IF EXISTS '${test}'@'localhost';
如果您嘗試刪除不存在的帳戶,則會發生錯誤。如果
IF EXISTS
給出了該子句,則該語句會為每個不存在的命名使用者生成警告,而不是錯誤。
您還可以強制該
mysql
工具忽略所有命令上的錯誤:如果您希望腳本在其中的某些語句產生錯誤的情況下繼續執行,您應該使用
--force
命令行選項。IE
mysql --force -u root -p << ...