2017-08-07 61 views
0

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

表:登录

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

回答

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小提琴。

+0

啊,我觉得笨!这工作谢谢你。当它允许我(10分钟)我会给你答案。谢谢! – do734