0
我试着在我的数据库中创建一个表“SIGNATURE”我想要这个表有一个双主键,并将外键约束添加到两个主键引用表“TRAITEMENT”MySql 5.6.17错误#1215 - 无法添加外键约束
CREATE TABLE TRAITEMENT (
id INTEGER NOT NULL,
dateHeurePrevue DATETIME NOT NULL,
commentaire LONGTEXT,
dateValidation TIMESTAMP,
CONSTRAINT PK PRIMARY KEY (id,dateHeurePrevue),
CONSTRAINT FK_traitement_consigne FOREIGN KEY (id) REFERENCES consigne(id)) ENGINE=InnoDB;
create unique index id_dateheureprevue on traitement(id, dateheureprevue);
CREATE TABLE SIGNATURE (
id INTEGER NOT NULL,
idPersonne INTEGER NOT NULL,
dateTimeTraitement DATETIME NOT NULL,
retard INTEGER,
motifRetard INTEGER,
heureEffectiveTraitement DATETIME NOT NULL,
CONSTRAINT PK PRIMARY KEY (id,dateTimeTraitement),
CONSTRAINT FK_id FOREIGN KEY (id) REFERENCES traitement(id),
CONSTRAINT FK_idPersonne FOREIGN KEY (idPersonne) REFERENCES personne(id),
CONSTRAINT FK_motifRetard FOREIGN KEY (motifRetard) REFERENCES retard(id),
CONSTRAINT FK_dateTimeTraitement FOREIGN KEY (dateTimeTraitement) REFERENCES traitement(dateHeurePrevue))ENGINE=InnoDB;
create unique index id_dateTimetraitement on signature(id, dateTimeTraitement);
显然,(我想删除它,它工作得很好)的问题来源于此forign键:
CONSTRAINT FK_dateTimeTraitement FOREIGN KEY (dateTimeTraitement) REFERENCES traitement(dateHeurePrevue)
我不明白,我不看到任何类型的冲突,键... 如果有人能帮我解决这个问题LEM ...
在此先感谢
难道是因为主要的你外键语句只引用一部分表的主键? – Osuwariboy
检查您的整理类型 – wahmal