レコード操作ー削除


レコードを全て消す(TRUNCATE)

TRUNCATE はすべてのレコードを消します。特定のレコードだけ消すことはできません。

// 両方ともエラーになるようなことがなければすべてのレコードを消すことができる
TRUNCATE TABLE tableA;
DELETE FROM tableA;

TRUNCATEについてDELETEとの違いは、
・高速
・レコードごとに消すことができない
・ロールバックできない
・外部参照していると失敗する
・AUTO INCREMENTの値がリセットされる
といった違いがあります。

MySQL5.6のマニュアル


削除テーブルとは異なるテーブルの条件で、レコードを削除する

削除するテーブルを2度設定する必要があるところが間違いやすいところです。

DELETE 削除テーブル 
FROM 削除テーブル 
JOIN テーブルA ON 削除テーブル.id=テーブルA.id 
WHERE 削除テーブル.key=テーブルA.key;