DROP TABLE実行時の留意点
DROP TABLEの仕様
DROP TABLE実行時に以下のエラーが発生する場合があります。
dbadmin=> DROP TABLE schema1.table1;
NOTICE 4927: The Projection table1_DBD_1_rep_dbd1213 depends on Table table1
ROLLBACK 3128: DROP failed due to dependencies
DETAIL: Cannot drop Table table1 because other objects depend on it
HINT: Use DROP ... CASCADE to drop the dependent objects too上記のエラーは、以下のいずれかに該当すると発生します。
削除対象のテーブルが最適化済みである場合</li>
削除対象のテーブルに複数のプロジェクションが作成されている場合</li>
削除対象のテーブルに参照整合性制約が付与されている場合</li>
対応方法
DROP TABLE文に「CASCADE」パラメータを付与すると、エラーが発生することなくテーブルを削除できます。
/*** 構文 ***/
DROP TABLE <スキーマ名>.<テーブル名> CASCADE;
/*** 実行例 ***/
dbadmin=> DROP TABLE schema1.table1 CASCADE;
DROP TABLE確認方法
テーブルが最適化されているか否かを確認するには、以下のSQLを実行します。
最適化済みのテーブルが出力されます。
/*** 実行例 ***/
dbadmin=> SELECT projection_schema, anchor_table_name, projection_name
dbadmin-> FROM projections
dbadmin-> WHERE create_type <> 'DELAYED CREATION'
dbadmin-> ORDER BY 1,2;
projection_schema | anchor_table_name | projection_name
-------------------+-------------------+------------------------------
SSBM | CUSTOMER | CUSTOMER_DBD_6_rep_comp_v1
SSBM | DATE1 | DATE1_DBD_9_rep_comp_v1
SSBM | LINEORDER | LINEORDER_DBD_10_rep_comp_v1
SSBM | PART | PART_DBD_7_rep_comp_v1
SSBM | SUPPLIER | SUPPLIER_DBD_8_rep_comp_v1検証バージョンについて
この記事の内容はVertica 9.1で確認しています。