外部キー制約を追加しようとしていますが、失敗します。私はこれまでに何度もやっていたので、なぜそれがそれをしているのか判断できません。基本的には、スキルと従業員をSkill_Bridgeテーブルに関連付ける必要があります。私はSkill_BridgeとSkillsを関連付けることができましたが、従業員と同じことをしようとすると失敗します。データ型は同じなので、私はこれが問題だとは思わない。私もSkill_Bridgeのプライマリキーを作成しようとしましたが、それらを関連させようとしましたが、うまくいきませんでした。最初の制約は「FKey1」に失敗する制約です。これは私のコードです。どんな助けもありがとう。前もって感謝します。エラーコード1215:外部キー制約を追加できません
あなたが foregn keysにMySQLのマニュアルを参照してください、外部キーで参照することができます前に、skill_bridgeテーブルにemployeeSkillGroupkeyにインデックスを作成する必要がcreate database if not exists Q3;
use Q3;
drop table if exists Employees;
create table Employees(
employeekey int not null,
firstName varchar (100) not null,
lastName varchar (100) not null,
employeeSkillGroupkey int not null,
primary key (employeekey));
insert into Employees values
(1, 'Ted', 'Codd', 1),
(2, 'Ralph' ,'Kimball', 7),
(3, 'Joe' ,'Celko', 1),
(4, 'James' ,'Gosling', 2),
(5, 'Godfrey', 'Muganda', 6),
(6, 'Margy', 'Ross', 5),
(7, 'Peter', 'Chen', 4),
(8, 'Terry' ,'Halpin',3),
(9, 'Tony', 'Morgan', 2);
drop table if exists Skills;
create table Skills(
empSkillKey int not null,
empSkillDescription varchar (1000) not null,
empSkillCategory varchar (200) not null,
primary key (empSkillkey));
insert into Skills values
(1, 'SQL', 'Database'),
(2, 'ERD', 'Database'),
(3, 'DM', 'Database'),
(4, 'Java', 'Programming'),
(5, 'Pascal', 'Programming');
drop table if exists Skill_Bridge;
create table Skill_Bridge(
employeeSkillGroupkey int not null,
empSkillKey int not null
);
insert into Skill_Bridge values
(1, 1),
(2, 4),
(3, 4),
(3, 5),
(4, 4),
(4, 2),
(5, 1),
(5, 3),
(6, 4),
(6, 5),
(6, 2),
(7, 1),
(7, 2),
(7, 3),
(7, 4);
ALTER TABLE Employees ADD CONSTRAINT FKey1 FOREIGN KEY (employeeSkillGroupkey)
REFERENCES Skill_Bridge (employeeSkillGroupkey)
ON DELETE Restrict
ON UPDATE Cascade;
ALTER TABLE Skill_Bridge ADD CONSTRAINT ForK2 FOREIGN KEY (empSkillKey)
REFERENCES Skills (empSkillKey)
ON DELETE Restrict
ON UPDATE Cascade;
これで問題は解決しました。どうもありがとうございました! – GGes
この場合、plsは回答を受け入れたものとしてマークするので、他のユーザは問題が解決されたことを知ることができます。 – Shadow