Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Retourner aux forums || Retourner au forum Programmation.SQL

Programmation.SQL : mysql clé étrangère dans une autre base de données

Posté par Cyprien Le Pannérer (Jabber id, page perso, ) le 15 mai 2006
Bonjour,
J'utilise mysql 5.0 et j'ai besoin de créer des tables dans une bd dont les champ sont des clés étrangères dans d'autres bd.

J'ai essayé la ligne suivante :

create table user_test ( username varchar(255) references syscp.mail_users(username), password varchar(128) references syscp.mail_users(password) ,primary key (username));



mais je n'obtiens aucuns résultat :
mysql> select * from user_test ; Empty set (0.00 sec)


or


mysql> select username,password from syscp.mail_users;
+--------------------------------+---------------+
| username | password |
+--------------------------------+---------------+
| (...) | (...) |
+--------------------------------+---------------+

17 rows in set (0.00 sec)



me renvoie bien les valeurs ...

mais je ne vois pas ce que j'ai loupé.

> Lire le message (8 commentaires, moyenne: 1,8).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

table vide ?

Posté par Hardy Damien (page perso, ) le 15/05/2006 à 09:09. (lien). Évalué à 3.

Est ce que tu l'a remplis ta table user_test ?

parce que mettre des contraintes de clés étrangères ne remplis pas la table automatiquement ... ça assure juste que les lignes que tu vas ajouter contiennent bien des informations qui existent déjà dans la table de référence.

Dam

  • [^]Re: table vide ?

    Posté par Cyprien Le Pannérer (Jabber id, page perso, ) le 15/05/2006 à 09:42. (lien). Évalué à 1.

    non :(

    j'ai honte c'était évident !

    • [^]Re: table vide ?

      Posté par Cyprien Le Pannérer (Jabber id, page perso, ) le 15/05/2006 à 09:52. (lien). Évalué à 1.

      c'est même encore plus simple : il me suffisait d'une vue :(
      je suis fatigué moi !

MySQL + Clés étrangères

Posté par Sebastian () le 15/05/2006 à 09:29. (lien). Évalué à 2.

Bonjour, Est-tu sure de la syntaxe ? Car, ainsi cela aurait été plus approprié :

CREATE TABLE user_test (
    username_ref varchar(255),
    password_ref varchar(128),
    FOREIGN KEY (username_ref) REFERENCES syscp.mail_users(username) ON DELETE CASCADE
    FOREIGN KEY (password_ref) REFERENCES syscp.mail_users(password) ON DELETE CASCADE
    primary key (username_ref)
);
Je n'ai pas pu vérifier. Donc à tester. Bon courage.

  • [^]Re: MySQL + Clés étrangères

    Posté par Sebastian () le 15/05/2006 à 09:31. (lien). Évalué à 2.

    Désolé pour les fautes d'ortographes =D

  • [^]Re: MySQL + Clés étrangères

    Posté par Cyprien Le Pannérer (Jabber id, page perso, ) le 15/05/2006 à 09:45. (lien). Évalué à 1.

    mysql ne pas insulté donc je pense que c'est bon.
    Le problème est que le fait de faire des clés étrangères ne dispence pas de remplir la table ...

c'est mal

Posté par baud123 (Jabber id, page perso, ) le 15/05/2006 à 09:32. (lien). Évalué à 3.

rapatrie plutôt en local les tables dont tu as besoin

ça ne va pas le faire en exploitation d'avoir deux bases différentes ainsi liées... (tu ne peux pas arrêter l'autre sans vautrer ton appli).

Si tu as réellement besoin des clés sur des données de l'autre base, cela signifie qu'il vaut mieux ne faire qu'une base de données vu qu'elles manipulent les mêmes données.

  • [^]Re: c'est mal

    Posté par Cyprien Le Pannérer (Jabber id, page perso, ) le 15/05/2006 à 09:46. (lien). Évalué à 1.

    Je suis d'accord mais je ne peux pas faire fusionner les deux tables.
    je pense que je vais écrire un script qui synchronise les deux BD.

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.SQL