映射(join)创建表不允许外键?

时间:2017-08-07 23:41:58

标签: mysql sql foreign-keys jointable

我为这个网站设置了这两个表格(登录和舔)。我想让用户保存他最喜欢的舔,这意味着我需要一个映射表,但它不起作用。它没有外键约束但我想要/需要外键约束。我已经完成了研究,每个人都说像我一样创建映射表,但它不起作用。 谁能告诉我为什么这不起作用?谢谢。

表:登录

CREATE TABLE `login` (
  `login_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`login_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

表:Licks

CREATE TABLE `licks` (
  `lick_id` int(11) NOT NULL AUTO_INCREMENT,
  `lick_name` varchar(50) DEFAULT NULL,
  `lick_category` varchar(20) DEFAULT NULL,
  `lick_html_pg` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`lick_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1

表login_licks(不是woking!)

CREATE TABLE login_lick (
  login_id INT NOT NULL,
  lick_id INT NOT NULL,
  PRIMARY KEY (login_id, lick_id),
  FOREIGN KEY login_id REFERENCES login (login_id),
  FOREIGN KEY lick_id REFERENCES licks (lick_id)
);

1 个答案:

答案 0 :(得分:1)

外键定义中缺少括号:

CREATE TABLE login_lick (
  login_id INT NOT NULL,
  lick_id INT NOT NULL,
  PRIMARY KEY (login_id, lick_id),
  FOREIGN KEY (login_id) REFERENCES login (login_id),
  FOREIGN KEY (lick_id) REFERENCES licks (lick_id)
);

Here是一个SQL小提琴。