ホームページ >データベース >mysql チュートリアル >mysqlに外部キーを追加する方法は何ですか
Mysql で外部キーを追加するメソッドは次のとおりです: 属性値の直後に追加、SQL ステートメントの最後に追加、fk を使用してテーブル作成後に外部キーを追加
関連する学習の推奨事項: mysql チュートリアル
mysql に外部キーを追加する 4 つの方法
Createメインテーブル: Class
CREATE TABLE class(cid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(15) NOT NULL) INSERT INTO class VALUES(NULL,'六年级一班') INSERT INTO class VALUES(NULL,'六年级二班')
最初のメソッド: 属性値の直後に
CREATE TABLE student(sid INT AUTO_INCREMENT, sname VARCHAR(10) NOT NULL, s_cid INT REFERENCES class(cid), PRIMARY KEY(sid) );
を追加//テスト用のデータを追加
INSERT INTO student VALUES(NULL,'王大锤',2) INSERT INTO student VALUES(NULL,'胡汉三',3) //约束不生效,原因待查 INSERT INTO student VALUES(NULL,'卧槽',4) //不敢相信,在测试一次
この方法、理由はわかりませんが、テストに追加されました何ということですか?オンラインの Baidu では結果が得られず、自習グループでも回答がありませんでした。今はここに残しておきます
2 番目のタイプ: 2. SQL ステートメントの最後に を追加します
CREATE TABLE student( sid INT AUTO_INCREMENT, sname VARCHAR(10), s_cid INT, PRIMARY KEY(sid), FOREIGN KEY (s_cid) REFERENCES class(cid) );
//データを挿入してテストします
INSERT INTO student VALUES(NULL,'王大锤',2) INSERT INTO student VALUES(NULL,'胡汉三',3) //约束生效 插入失败
外部キー制約が有効になります
# #3 番目の方法: fk
CREATE TABLE student(sid INT AUTO_INCREMENT, sname VARCHAR(10) NOT NULL, s_cid INT , PRIMARY KEY(sid), CONSTRAINT fk_student_class FOREIGN KEY(s_cid) REFERENCES class(cid) );
INSERT INTO student VALUES(NULL,'王大锤',2) INSERT INTO student VALUES(NULL,'胡汉三',3) //约束生效 插入失败を使用する
4 番目の方法: テーブルの作成後に外部キーを追加する
CREATE TABLE student(sid INT AUTO_INCREMENT, sname VARCHAR(10) NOT NULL, s_cid INT , PRIMARY KEY(sid) );//外部キー制約を追加する:
ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);//テスト
INSERT INTO student VALUES(NULL,'王大锤',2) INSERT INTO student VALUES(NULL,'胡汉三',3) //约束生效 插入失败
以上がmysqlに外部キーを追加する方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。