sql >> データベース >  >> RDS >> Mysql

MYSQLテーブルの制約?

    課したい2つの制約についていくつかのことがあります:

    1. 新しく挿入された行は、Parent_group列にNULL値を持つことはできません。

      • 列にNULL以外の値がすべて含まれている場合にのみ、列にNOTNULL制約を課すことができます。ルートノードのこの列にはnull値が必要です。
      • このために、CHECK制約を使用できます。 CHECKCONSTRAINTの詳細を読むここ 。
      • 置くことができます

    これにより、ルートノードに対してのみNULL値が許可され、テーブル内の他のすべての行に対してNOTNULL値が適用されます。

    1. RootGroup行を削除できないように制約を追加します。

      • parent_groupの間に外部キーをすでに定義していること およびpkey 、データベースは自動的に参照整合性を適用し、ルートノード(または、さらに言えば、親ノード)の削除を禁止します。親ノードまたはルートノードでDELETEを試行すると、データベースはエラーを返します。
    2. 編集で言及された点について セクションでは、
      CHECK (parent_group != pkey)のような単純なチェック制約をテーブルに設定できます。 。これでうまくいくはずです。

    外部キー制約を定義する方法と、それらを使用して参照整合性を適用する方法について説明します。また、上記のリンクまたはここ これらの提案を適用する前に。




    1. C#を使用して環境変数パスを設定する方法

    2. postgresqlのdoctrineJSON列は、同じデータのオブジェクトまたは配列を格納しています

    3. MySQL InsertSelect-NOTNULLフィールド

    4. Yiiで最後に挿入された値を取得する