2017-08-07 59 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