Ottenere la chiave primaria di una tabella in SQL...

Tutta l'informatica

Ottenere la chiave primaria di una tabella in SQL...

Messaggioda Jair » gio nov 30, 2006 2:17 pm

Salve a tutti,
avrei bisogno di un altro aiutino confidando nella vostra gentilezza..... :eheh2:

Ho una query di questo tipo:

$sql= "INSERT INTO `modelloazienda` (`idmodelloazienda`, `id_azienda`, `datafondazione`, `settore`, `titolare`, `citta`, `comune`)";

Se la query va a buon fine, come faccio subito dopo a riottenere il valore del campo IDMODELLOAZIENDA appena inserito, che è una chiave primaria?
Quale funzione SQl dovrei usare?

La chiave primaria ( che è un campo auto-increment e quindi automatico) mi serve per memorizzarla poi da un'altra parte...come posso fare?

Chiedo scusa per la domanda scema, ma sono alle prime armi :scherza:
Ringrazio anticipatamente chiunque mi risponderà!

Luca
Avatar utente
Jair

Maestro
 
Messaggi: 529
Iscritto il: dom giu 25, 2006 1:48 pm

Messaggioda Blackfede » gio nov 30, 2006 5:51 pm

Allora...tu usi PHP (mi sembra, dal codice che hai postato) giusto?

In ogni caso...se scrivi
Codice: Seleziona tutto
$sql= "INSERT INTO `modelloazienda` (`idmodelloazienda`, `id_azienda`, `datafondazione`, `settore`, `titolare`, `citta`, `comune`)";


Vuol dire che tutte quelle che hai messo tra `` sono variabili e quindi tu hai gia la chiave primaria, in quanto la hai appena inserita.

In ogni caso, mettiamo pure che tu non iserisci la chiave primaria che come hai detto e` un autoincremento, allora, in SQL standard non so se c'e` una funzione che ti restitiusce il valore di un tipo sequenza (la chiave primaria autoincrementante),ma se guardi nel manuale del tuo RDBMS (MySQL immagino) trovi qualcosa a rigurado. In PostgreSQL c'e` per esempio la funzione
Codice: Seleziona tutto
curval("oggetto_sequenza")

che ritorna il valore attuale della sequenza. Che e` pari all'ultimo appena inserito in genere.

So che su MySQL fino a qualche tempo fa le sequenze non avevano questo nome, per cui devi leggere il manuale.
I troll sono solo dei dementi che finisco in /dev/null
-------------------------------------------
I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva...e dopo qualche anno ci furono i rave party!
Avatar utente
Blackfede

Eroe
 
Messaggi: 1227
Iscritto il: gio gen 16, 2003 10:18 am
Località: Parma

Messaggioda Jair » ven dic 01, 2006 12:07 am

Si, avevo dimenticato di scrivere che uso PHP+MySQL.
Ti ringrazio molto per avermi risposto.

Cercando bene ho trovato questa funzione che fa quello che volevo io:

Subito dopo aver fatto un INSERT ho messo:

$chiave=mysql_insert_id();

E mi restituisce proprio il valore della chiave primaria della precedente operazione INSERT!! :ride:

Grazie ancora per la risposta!
Avatar utente
Jair

Maestro
 
Messaggi: 529
Iscritto il: dom giu 25, 2006 1:48 pm


Torna a Tecnologia, internet, coding

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti