错误代码:1215。无法添加外键约束

时间:2014-03-28 15:39:09

标签: mysql

我有两张桌子,我希望两者之间有参考。

我尝试使用alter table命令,但它给了我一个错误,有人可以帮我吗?

CREATE TABLE `registos` (
`data_registo` char(10) NOT NULL,
`hora_registo` time NOT NULL,
`idSensor` varchar(8) NOT NULL,
`Temperatura` char(6) DEFAULT NULL,
`Humidade` char(6) DEFAULT NULL,
`pt_orvalho` char(6) DEFAULT NULL,
`idRegisto` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`idRegisto`,`idSensor`,`data_registo`,`hora_registo`),
KEY `fk_registos_sensores1_idx` (`idSensor`),
CONSTRAINT `fk_registos_sensores1` FOREIGN KEY (`idSensor`) REFERENCES `sensores`   (`idSensor`) ON DELETE NO ACTION ON UPDATE NO ACTION
 )




CREATE TABLE `alarmes` (
`idAlarme` int(11) NOT NULL AUTO_INCREMENT,
`descricao_alarme` varchar(45) DEFAULT NULL,
`data_criacao` datetime DEFAULT CURRENT_TIMESTAMP,
`idRegisto` int(11) NOT NULL,
PRIMARY KEY (`idAlarme`,`idRegisto`)
) 

ALTER TABLE alarmes

ADD CONSTRAINT FK_alarmes1
FOREIGN KEY (idRegisto) REFERENCES registos(idRegisto)
ON UPDATE CASCADE
ON DELETE CASCADE;

1 个答案:

答案 0 :(得分:2)

您已将idRegisto定义为一个表中的有符号整数,将另一个表中的无符号整数定义为。外键引用只能在具有相同类型的字段之间进行。

另一个问题是您创建了名为registos的表,但您正在尝试添加引用表registo的密钥。