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ò.
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ò.