PDA

View Full Version : [Java+MySQL] autoincrement e inserimento in 2 tabelle


fbcyborg
05-01-2008, 12:08
Ciao a tutti,

sto cercando di capire come poter inserire in due tabelle in relazione fra loro, due ID identici. Mi spiego meglio.

Ho due tabelle: Rubrica e RubricaAmici.

Entrambi, sebbene abbiano campi diversi, hanno lo stesso ID e ad ogni ID in RubricaAmici corrisponde uno e un solo ID in Rubrica.
Ora, il problema è che l'ID di Rubrica è un valore che si deve autoincrementare e di conseguenza, lo stesso valore deve essere poi inserito in RubricaAmici.

Quindi via software faccio prima l'inserimento in Rubrica, ottenendo un ID autogenerato nella nuova tupla e poi devo inserire in RubricaAmici. Ma come faccio a fare questa cosa in modo sicuro?
Ad occhio direi che bisogna inserire in Rubrica, fare una query e vedere con che ID è stata inserita l'ultima tupla e poi inserire in RubricaAmici.. Ma questo non va bene perché se qualcun'altro in rete con lo stesso programma, inserisce una nuova tupla in Rubrica, succede un casino e i dati sono inconsistenti...

Come si risolve in questi casi? Ho bisogno dell'autoincrement.

Grazie

EDIT: Alla fine ho risolto andando a fare una query subito dopo aver creato la tupla nella tabella che prevede l'autoincrement. Non vedo altra soluzione. Riferimento (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html).
You can find the row that contains the most recent AUTO_INCREMENT value by issuing a statement of the following form immediately after generating the value:

SELECT * FROM tbl_name WHERE auto_col IS NULL

This behavior can be disabled by setting SQL_AUTO_IS_NULL=0
Quella query dovrebbe restituire la tupla appena aggiunta. Ancora non l'ho provato però.