SQLの外部キー

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

外部キー

コンセプト:

     主キーと外部キー、プライマリアクションが外部キーの関係になるように、より良い相関関係のデータテーブル。

外国の主な機能:

     基準値テーブルから、マスターテーブルの主キーに対する外部キーです。

     外部キーテーブルの種類から、主テーブルは主キーの型と一致していなければなりません。

役割:外部キーは、データの整合性と一貫性を確保することができます

フォーマット:(2種類)

[constraint 外键约束关系的名称] foreign key 从表(外键字段名称) references 主表(主键字段名称)
alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);

卵:

データ:

#部门表:
CREATE TABLE dept(
id INT PRIMARY KEY AUTO_INCREMENT,
dname VARCHAR(20) UNIQUE NOT NULL,
dcode INT UNIQUE NOT NULL);
#员工表:
CREATE TABLE emp(
id INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20) NOT NULL,
ecode INT UNIQUE NOT NULL,
did INT,
CONSTRAINT dept_emp FOREIGN KEY emp(did) REFERENCES dept(id));

データを挿入します。

#插入数据:
INSERT INTO dept VALUES(NULL,'技术部',100);
INSERT INTO dept VALUES(NULL,'财务部',200);
INSERT INTO dept VALUES(NULL,'人事部',300);
INSERT INTO emp VALUES(NULL,'张三',123,1);
INSERT INTO emp VALUES(NULL,'李四',124,2);
INSERT INTO emp VALUES(NULL,'王五',125,1);
INSERT INTO emp VALUES(NULL,'田七',126,1);

例外をスロー:

问题: ID = 1 DEPT FROM DELETE。 

エラー理由: EMP値にセクタ1 INSERTのテーブルIDの従業員関連セクターは(NULL、「母」、127,5); 間違った理由:主テーブルIDに主キーは、セクター5

おすすめ

転載: blog.csdn.net/longyanchen/article/details/93778930