【问题标题】:Mapping (join) create table not allowing foreign keys?映射(加入)创建表不允许外键?
【发布时间】:2018-01-15 08:46:56
【问题描述】:

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

表格:登录

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

表:舔

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(不醒!)

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)
);

【问题讨论】:

    标签: mysql sql foreign-keys jointable


    【解决方案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 Fiddle。

    【讨论】:

    • 啊,我觉得自己很笨!那行得通,谢谢。当它允许我(10 分钟)时,我会给你答案。谢谢!
    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2020-01-17
    • 2018-04-02
    • 2013-09-29
    • 2018-04-22
    • 1970-01-01
    相关资源
    最近更新 更多