MySQLデータベース:データの整合性とアプリケーションの制約

データの整合性

1.ドメインの整合性:---------整合性マッチ:非空で、デフォルトの
フィールド/列

2.エンティティの整合性:-------整合性の一致:主キー、ユニークキー
レコード/行

3.参照整合性:外部キー:-------マッチングの整合性
テーブルとテーブルの間

制約:制約

MySQLでバインドカテゴリー

主キー:主キー
ユニークキー:ユニークな
非空:NOT NULL
デフォルト:デフォルトの
外部キー:外部キー

主キー、ユニークキー、外部キーが自動的にインデックス作成され
、主キー:テーブルのフィールドに対応することができる1つのプライマリキーを持つことができ、また、フィールド(複合主キー)の複数に対応することができる
一意のキー:主キーにも候補(主キーとの違いそのヌル値を格納してもよい)
の外部キー:マスターテーブルからの一次またはユニークキー(ブランクを可能にし、その値があまりにもプライマリ・テーブルに存在しなければならないもの)

制約の作成
constraint 约束名 约束类型(字段名) references 主表(主键字段或唯一键字段)

外部キー制約を作成します。

constraint 约束名 foreign key(对应字段) references 主表(主键字段或唯一键字段)

複合主キーを作成します。

primary key (字段1,字段2)

既に存在しているテーブルでは、ユニークキー制約を作成します

alter table 表名 add constraint 约束名 unique(字段名);

サブ制約されたデータテーブルのデータを削除する削除し、メインテーブルデータを削除

削除カスケード

on delete cascade 

カスケード更新

on update cascade

外部キー制約のmysqlをオフにします

SET FOREIGN_KEY_CHECKS=0;

オープン外部キー制約のmysql

SELECT  @@FOREIGN_KEY_CHECKS;

外部キー削除
注:このステートメントは、あなたが外部キーを削除した後、外部キー制約が自動的に生成され、削除することに関連することができません

alter table 表名 drop foreign key 外键名称;

のみ削除するための鍵
注:対応するインデックスは自動的に削除する唯一の鍵後に削除されます

alter table 表名 drop index 唯一键字段名;

指定したインデックスの名前を削除します。

alter table 表名 drop index 索引名称;

リマインダー:外側のテーブルの主関連付け、データ削除テーブルを有し、カスケード操作の前に除去されない場合は、マスタ・テーブル・データが削除され、対応するデータテーブルから削除されなければなりません

おすすめ

転載: www.cnblogs.com/yanlzy/p/11909258.html