MySQLメモ018:MySQL WorkbenchでTRUNCATEできるようにする
MySQL Workbench でテーブルで TRUNCATE TABLE を実行したら、エラーになった。
原因はMySQLのクライアントがsafe updateモードという状態で、その状態ではWHEREやLIMITで制限をしていないDALETE文やUPDATE文、それにTRUNCATE TABLEは実行できないようになっているらしい。間違ってデータを全削除したり全更新するのを防ぐためだろうか。間違って全更新ならやったことあるなあ^^;
TRUNCATE TABLEできるようにするには、システム変数sql_safe_updatesを以下のようにして0にセットすればよい。
SET SQL_SAFE_UPDATES = 0;
現在、safe updateモードかどうかは以下のどちらかで調べられる。
SELECTの方は0か1、SHOWの方はONかOFFと表示される。
SELECT @@sql_safe_updates; SHOW VARIABLES LIKE 'sql_safe_updates';
参考ページ:
MySQL Workbench でデータベースに接続してみる | セルティスラボ
MySQL ワークベンチで、TRUNCATE TABLE が失敗する-Oboe吹きプログラマの黙示録
MysqlWorkbenchでエラー(TRUNCATEとか)の対処|システム屋さんって何やねん!!
MySQL4.1/9.MySQLの実験/1.システム変数の参照と変更 - Ground-SunLight
田舎暮らしプログラマの技術メモ [MySQL] システム変数を表示する
mysql - How to check if sql_safe_updates is on? - Stack Overflow
« MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE | Main | MySQLメモ019:TIMESTAMP型の列には勝手にNOT NULL制約とDEFAULT制約が付く »
「MySQL」カテゴリの記事
- MySQLメモ020:INSERT後にAUTO_INCREMENTなカラムの値を取得する方法(PDO編)(2015.02.14)
- MySQLメモ019:TIMESTAMP型の列には勝手にNOT NULL制約とDEFAULT制約が付く(2015.02.12)
- MySQLメモ018:MySQL WorkbenchでTRUNCATEできるようにする(2015.02.11)
- MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE(2015.02.08)
- SQLインジェクション その7(2013.10.14)
The comments to this entry are closed.
TrackBack
Listed below are links to weblogs that reference MySQLメモ018:MySQL WorkbenchでTRUNCATEできるようにする:
« MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE | Main | MySQLメモ019:TIMESTAMP型の列には勝手にNOT NULL制約とDEFAULT制約が付く »
Comments