2016-05-01 14 views
0

は、MySQLにテーブルを作成するための私のSQL文ですが、私は警告してしまった誰も...重複したキーは、(私はいずれかがテーブルを作成する際にMySQLの重複キー?ここで

CREATE TABLE EmployeeSkill (
    empId Integer NOT NULL, 
    skillId Integer NOT NULL, 
    skillLevel Integer NULL, 
    CONSTRAINT empSkillPk PRIMARY KEY(empId, skillId), 
    CONSTRAINT empFk FOREIGN KEY(empId) REFERENCES Employee(empId), 
    CONSTRAINT skillFk FOREIGN KEY(skillId) REFERENCES Skill(skillId) 
) 

はなぜか分からないのですか?重複して見つけることができない存在であると言います任意の手掛かり?

+0

@ハリー問題は、この作成ステートメントで重複を見つけることができないことです。 –

+0

@ハリー作成中のテーブルです。 –

答えて

0

私が発見し確認することができます。それ! は、私は他のテーブルは、外部キーを占有していることがわかった私のデータベース

select * 
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
where CONSTRAINT_TYPE = 'FOREIGN KEY' 

に次のステートメントを使用します。他の外部キーを使用するだけで、動作します。

0

あなたがテーブルの主キーを持っています。PRIMARY KEY(empId, skillId)をこのエラーはempIdskillIdすでにテーブルに存在を挿入することの組み合わせを意味しますが、それは

SELECT * 
FROM EmployeeSkill 
WHERE empId = @insertEmpId AND skillId = @insertSkillId 
+0

問題は私がEmployeeSkillテーブルをまだ持っていないことです、どうすればそれを複製できますか? –

+0

あなたは外部キーを使用しています。 MySQLは、親テーブルが参照されたカラムにユニークなインデックスを持っているかどうかをチェックします。 'empId'は' Employee'の主キーですか?スキルのための 'skillId'?その場合、通常、この列に値が重複しません。しかし、それらはユニーク/主キーではないかもしれませんか? – Andrew

関連する問題