mysql添加外键约束错误

时间:2014-04-20 13:04:21

标签: mysql sql

我有两个表,我想用外键约束连接

出于某种原因,当我尝试这样做时,它会失败并说:#1215 - Cannot add foreign key constraint

这是我的第一张表:

CREATE TABLE `zmaneyhayom` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `zman_id` varchar(255) NOT NULL,
 `tempHour` tinyint(1) NOT NULL,
 `tempHourType` varchar(255) NOT NULL,
 `tempHourNum` double NOT NULL,
 `tempMinutes` tinyint(1) NOT NULL,
 `tempMinutesType` varchar(255) NOT NULL,
 `tempMinutesNum` double NOT NULL,
 `regularMinutes` tinyint(1) NOT NULL,
 `regularMinutesNum` double NOT NULL,
 `equivalentMinutes` tinyint(1) NOT NULL,
 `equivalentMinutesNum` double NOT NULL,
 `degreesBelowHorizon` tinyint(1) NOT NULL,
 `degreesBelowHorizonNum` double NOT NULL,
 `beforeAfter` varchar(6) NOT NULL,
 `riseSet` varchar(4) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `zman_id_2` (`zman_id`),
 KEY `zman_id` (`zman_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

此表包含ID和名称,最终该表中的ID是上一个表的名称(zman_id列):

CREATE TABLE `zmaneyhayomlabels` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

这是我为了创建约束而尝试的代码:

ALTER TABLE  `zmaneyhayom` ADD FOREIGN KEY (  `zman_id` ) REFERENCES  `luah_v2`.`zmaneyhayomlabels` (

`id`
) ON DELETE NO ACTION ON UPDATE NO ACTION ;

我不知道为什么会失败:/

我想要的是每当我继续使用phpmyadmin并转到第一个表时,而不是在zman_id中输入一些id,我将有一个选择框,我可以选择一个名称(存储在第二个table)但它将存储的值将是ID。

1 个答案:

答案 0 :(得分:2)

它们不是同一类型id是INT,而zman_id是varchar。

你可以改变这个

 `zman_id` varchar(255) NOT NULL,

 `zman_id` int(11) NOT NULL,