2016-10-08 9 views
1

A1が表AのフィールドA1の外部キーである場合、列(A1、A2、A3 ...)および表B(A1、A2、A3 ...)の表Aが与えられます。 drop_partitionコマンドは外部キーの依存関係を無視しますか?

テーブルがAの行が含まれている日付フィールドで分配し、パーティションが削除された場合、フィールドは、テーブルAとB

に関連レコードに同じ値を持つされているB.

によって参照されますそれはBによって参照される、なぜ私は例外を取得しないのですか?レコードがどこかで参照されていることを示す何らかのエラーが予想されます。

私は何かを見逃しています - それは私に警告する必要がありますか?

答えて

1

バージョン8より前のバージョンでは、Verticaはdml操作中にプライマリ、ユニークまたは外部キー制約を適用できません。あなたは事実の後に違反を検出する必要がありますanalyze_constraints()を使用しています。

バージョン8でもこの点で制限があります。まず、チェックが有効になっていることを確認する必要があります。第2に、これは主キーとユニークキーでのみ機能します。

FKを強制するには(いずれのバージョンでも)事前結合投影を作成する必要があります。ただし、プレジョイン投影がある場合はパーティションを削除できないため、これを行うこともできない場合があります(プレジョインプロジェクションをドロップし、パーティションをドロップし、プレジョインプロジェクションを再作成します)。

また、結合前の投影法を使用することにはいくつかの制限があります。

また、VerticaはOLTPではなく、高速ロードと高速クエリ(および圧縮)に焦点を当てています。私はあなたの痛みを理解していますが、ときどきこのような機能が必要になることもあります。

これが役に立ちます。

関連する問題