MySQL 於 CLI 操作時,通常都要特別小心再小心,但是也是很難避免有意外的發生,此時可以使用 Transaction 的特性,再多一層保障。
- 注意:上述需要支援 Transaction(交易)(例如:InnoDB),MyISAM 是不支援 Transaction 的
MySQL CLI 關閉 autocommit 避免失誤
於 MySQL CLI 操作的時候,可以先將 autocommit 關閉,每次操作並確認後,再手動執行 commit 的動作。
上述於手動執行的步驟
- $ mysql -u root -p DBName
- mysql> set autocommit=0;
- mysql> select ... 抓取資料確認
- mysql> update ... sql command... 更新
- mysql> select ... 再次確認資料
- mysql> commit; # 正確就 commit
- mysql> rollback; # 異常就還原 (rollback)
若要讓每次 CLI 進入時,都預設關閉 autocommit 的話,可以做下述設定:
- 預設 autocommit 設定為 0
- vim ~/.my.cnf # 加入下述兩行即完成
[client]
init-command='set autocommit=0' - 驗證是否 autocommit 都設定關閉了
- $ mysql -u root -p DBName
- mysql> select @@autocommit; # 可以查看目前 autocommit 的狀態