TRUNCATE TABLE 文を実行すると、AnalyticDB for MySQL クラスター内のテーブルまたはテーブルの特定のパーティションからすべてのデータを削除できます。テーブルスキーマは保持されます。
構文
テーブルからすべてのデータを削除する:
TRUNCATE TABLE db_name.table_name;テーブルの特定のパーティションからデータを削除する:
TRUNCATE TABLE db_name.table_name PARTITION partition_name[,...];
パラメーター
| パラメーター | 説明 |
|---|---|
| *db_name* | 切り捨てるテーブルが含まれるデータベースの名前。 |
| *table_name* | 切り捨てるテーブルの名前。 |
| *partition_name* | 切り捨てるパーティションの名前。AnalyticDB for MySQL では、パーティション名は BIGINT 値です。複数のパーティション名をコンマで区切って指定できます。パーティション名のクエリ方法については、「パーティション名のクエリ」をご参照ください。 |
パーティション名のクエリ
テーブル内のすべてのパーティションの名前をクエリするには、次の文を実行します:
SELECT partition_name FROM information_schema.partitions WHERE table_name = 'your_table_name' ORDER BY partition_name DESC LIMIT 100;注意事項
データベースのバックアップが進行中の場合、
TRUNCATE TABLE文は実行できません。バックアップ中にこの文を実行すると、エラーが返されます。ご利用の AnalyticDB for MySQL クラスターで BUILD タスク (バックグラウンドでのデータ整理プロセス) が実行中の状態のときに
TRUNCATE TABLE文を実行すると、エラーが返されます。BUILD タスクが完了するまで待ってから、再度この文を実行する必要があります。BUILD タスクの状態のクエリ方法の詳細については、「BUILD タスクの状態の表示」をご参照ください。
例
adb_demoデータベースのcustomerテーブルからすべてのデータを削除する:TRUNCATE TABLE adb_demo.customer;adb_demoデータベースのcustomerテーブルのパーティション20170103、20170104、20170108からデータを削除する:TRUNCATE TABLE adb_demo.customer PARTITION 20170103,20170104,20170108;