MySQL - 无法添加外键约束

MySQL - Cannot add foreign key constraint

请帮忙 我对此很菜鸟,我不知道应该如何放置外键 如果有人能提供帮助,我将不胜感激!

mysql> 
    create table Evento
    (idEven int NOT NULL auto_increment,
    denominacion varchar(20),
    horaInicio time,
    idLugar int,
    cupo int,

    constraint PK_Evento primary key (idEven));

Query OK, 0 rows affected 

mysql> 
    create table Lugar
    (idLugar int NOT NULL,
    nombre varchar(20),
    direccion varchar(20),
    localidad varchar(20),

    constraint PK_Lugar primary key (idLugar),
    constraint FK_Lugar foreign key (idLugar) references Evento(idLugar));

ERROR 1215 (HY000): Cannot add foreign key constraint

您似乎需要来自 event 的外键来引用 place

也就是说,看起来像一个"event"发生在一个地方,但一个地方可以有多个"events"。为了在 "event" table 中表示,我们引用事件发生的 "place"。你已经在那里找到了专栏。

只要换个思路...外键在子 table 上定义,并引用父。事件 table 中的 idLugar 列引用了 Lugar.

中的一行

只需从 Lugar table 中删除第二个外键约束,然后将约束添加到 Evento table.

例如:

 ALTER TABLE `Evento` ADD
   CONSTRAINT FK_Evento_Lugar FOREIGN KEY (idLugar) REFERENCES Lugar(idLugar)

注意:当心区分大小写 问题table 名称。我们采用的避免问题的模式是将所有 table 名称小写,并在 my.cnf.

中设置 lower_case_table_names=1

参考:https://dev.mysql.com/doc/refman/5.5/en/identifier-case-sensitivity.html