My Photo

« MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE | Main | MySQLメモ019:TIMESTAMP型の列には勝手にNOT NULL制約とDEFAULT制約が付く »

February 11, 2015

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」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/61120993

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制約が付く »

May 2017
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof