2010-02-23 5 views
2

J'ai le code suivant dans mysql.MySQL: comment ajouter une clé étrangère

create table employee(
    e_id int(10) not null auto_increment, 
    user_id int(10), 
    usertype_id default 1, 
    name varchar(50), 
    primary key (e_id) 
); 
create table relation(
    r_id int(10) not null auto_increment, 
    user_id int(10) not null, 
    usertype_id int(10) not null, 
    interest_id int(10) not null, 
    primary key (id) 
); 

Tout d'abord, je veux user_id aura la même valeur que la colonne e_id;

Et puis, je veux ajouter user_id et usertype_id comme une unité dans le tableau relation comme une clé étrangère pour user_id et usertype_id dans le tableau employee.

Savez-vous comment faire?

Merci beaucoup.

Répondre

1

Vous pouvez faire user_id et usertype_id dans le tableau relation comme clés étrangères pour les mêmes colonnes dans le tableau employee comme ceci:

create table relation(
    r_id int(10) not null auto_increment, 
    foreign key user_id references employee(user_id), 
    foreign key usertype_id references employee(usertype_id), 
    interest_id int(10) not null, 
    primary key (id) 
); 

Je ne peux pas vous aider avec e_id et user_id étant égaux entre eux. Honnêtement, cela ressemble à un gaspillage d'espace.

+0

vous devez également mettre en cascade les mises à jour – arthurprs

+0

@thanks vanessa, en fait, je veux ajouter une clé étrangère pour user_id et usertype_id en tant qu'unité. Est-ce possible? –

0

Vous pouvez introduire un déclencheur pour garantir que e_id et user_id contiennent la même valeur, mais je suis d'accord avec l'affiche précédente. À quoi ça sert?

+0

@Greg, merci. Je veux utiliser l'user_id pour un autre usage, et ce ne devrait pas être une clé primaire. Donc je dois faire ça. As tu des idées? –

Questions connexes