INSERT dans 2 tables

TexTwil Messages postés 300 Statut Membre -  
TexTwil Messages postés 300 Statut Membre -
Bonjour,
je développe une application web J2EE et ma base de données est INFORMIX (9.3 je crois).
J'ai une petite question de SQL. Voilà: j'ai, entre autres, deux tables:
DIRECTEURS(num_dir(PK), nom, prenom, tel, mail ... , id_utilisateur(FK)
et
UTILISATEUR(id_utilisateur(PK), login, passwd, profil)

Comme vous l'aurez compris, l'id de l'UTILISATEUR est une foreign key de
la table DIRECTEUR et donc se retrouve dans cette table.

Les identifiants des deux tables sont du type SERIAL, c'est à dire un int qui s'auto-incrémente et qu'on a donc pas besoin de renseigner pdt un INSERT.

Pendant l'inscription dans l'appli le directeur saisit ses infos + login
et mot de passe. On ecrit donc dans les deux tables. Comment il faut faire l'INSERT pour garder la cohérence entre les deux enregistrements, c'est à dire pour associer le bon FK dans la table DIRECTEURS ? C'est pas une histoire de procédure SQL ?

Je précise aussi que je suis en environement Java donc je peux utiliser les API et notament java.sql.
N'y a t-il pas une fonction du genre executeInsert(query) qui renvoie un entier correspondant au SERIAL de la table qui s'est auto incrémenté ?

Je demande car les délais de livraison de l'application sont proches et g bcp d'autres pbs à résoudre :-)
merci pour votre aide.
Si je trouve je vous fais savoir.
bye
Si je trouve une solution
merci bien

Tex
A voir également:

1 réponse

tafiscobar Messages postés 1281 Statut Contributeur 177
 
tu inseres d'abord ds Directeurs et s'il n'ya pas de methodes qui te retourne le numero de l'enregistrement nouvellement inscrit, eh ben tu fais une autre requete ou tu recuperes le dernier enregistrement et ensuite tu fais ton insert ds la table Utilisateurs.

tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
0
TexTwil Messages postés 300 Statut Membre 21
 
"s'il n'ya pas de methodes qui te retourne le numero de l'enregistrement nouvellement inscrit, eh ben tu fais une autre requete ou tu recuperes le dernier enregistrement et ensuite tu fais ton insert ds la table Utilisateurs. "

Ca ne merche pas car l'application va être utilisé par des disaines (voir centaines) d'utilisateurs à la fois. Donc il faut récuperer le n° de la ligne qu'on vient d'inserer et non pas la derniere insérée.

je pense avoir trouvé:
http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/getstart/statement.html

Tex
0