Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Inserimento campo su MYSQL
mercoledì 13 aprile 2005 - 18.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
SuperSasch2004
Profilo
| Newbie
28
messaggi | Data Invio:
mer 13 apr 2005 - 18:26
Salve a tutti avrei una domandina su un mio dubbio ...
io uso mysql server e come front end per connettermi a questo db uso mysql connettor .NET ...
Il mio problema sta nel fatto che sto creando un software di gestione per la gestione di un agriturismo ... il principio è avere più postazioni di lavoro e avere un unico server centrale dove far stare tutti i dati ...
il problema sta nella tabella fatture ... il principio è avere un tabella con chiave primaria di tipo int(6) null auto_increment ...
Quando vado ad inserire un fattura faccio la mia bellissima query
insert into fatture (fatturaid, [...]) values (null,[...])
poi vado a prendere l'ultima fattura inserita nella tabella
select MAX(fatturaid) from fatture LIMIT 1
select * from fatture where fatturaid= $num_fattura
questo principio va bene fino a quando non ci sono più postazioni di lavoro che simultaneamente inseriscono fatture...
volevo sapere se c'era un metodo con mysql connettor .net in modo che appena inserisco una riga nella tabella mi restituisce automaticamente il numero della chiave di quella riga ...
grazie mille
ps- so che mi esprimo da cani ma ad italiano avevo sempre 3 e ad informatica 10
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 14 apr 2005 - 13:43
E' semplice, la soluzione ce l'hai già tu.
In SQL Server c'è un comando apposta per avere restituito l'ID (autoincrementante) dell'ultimo record inserito. Basta infatti fare così:
SELECT @@identity
Bisogna trovare il corrispondente in MySQL.
Per l'altra soluzione che però non è tecnicamente corretta (Select max()) potresti usare le transazioni in modo che le operazioni che esegui su una transazione non vengono intaccate da altre e quindi dovrebbe funzionare comunque perfettamente. Mi pare che MySQL supporti le transazioni.
ciao
david
SuperSasch2004
Profilo
| Newbie
28
messaggi | Data Invio:
gio 14 apr 2005 - 14:35
non sarebbe male trovare il corrispettivo in Mysql .. anche se è da molto che faccio script php, vb e ... che si connettono al Mysql e questa istruzione non l'ho mai usata ...
ora provo a dare un'occhiata in giro ... ti ringrazio per la dritta ...
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
gio 14 apr 2005 - 20:19
Ciao SuperSasch2004, ti confermo quanto detto da Brainkiller, MySQL accetta le transazioni su tabelle di tipo InnoDB.
Avevo anch'io un problema simile al tuo ed l'ho risolto con una transazione....
SuperSasch2004
Profilo
| Newbie
28
messaggi | Data Invio:
mar 3 mag 2005 - 10:43
problema risolto tramite questa funzione di Mysql
SELECT LAST_INSERT_ID();
come dice il manuale di Mysql
Returns the last automatically generated value that was inserted into an AUTO_INCREMENT column
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !