2017-08-07 4 views
0

J'ai ces deux tables pour ce site que je suis en train de construire (connexion et lèche). Je veux permettre à l'utilisateur de sauvegarder ses coups de langue préférés, ce qui signifie que j'ai besoin d'une table de correspondance, mais cela ne fonctionne pas. Cela fonctionne sans la contrainte de clé étrangère mais je veux/ai besoin de la contrainte de clé étrangère. J'ai fait des recherches et tout le monde dit de créer la table de cartographie comme je le suis mais ça ne marche pas. Quelqu'un peut-il me dire pourquoi cela ne fonctionnera pas? Je vous remercie.Mappage (join) Créer une table ne permettant pas les clés étrangères?

Tableau: Connectez-vous

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 

Tableau: (non woking) 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 

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

Répondre

1

Il vous manque entre parenthèses dans la définition de clé étrangère:

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 est un violon SQL.

+0

Ahh je me sens bête! Cela a fonctionné merci. Quand cela me permet (10 min), je vais vous donner la réponse. Je vous remercie! – do734