|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[MySql]verifica esistenza tabella
Ciao a tutti
![]() Dal manuale di mysql leggo che: Codice:
CREATE TABLE tblName IF NOT EXIST Il problema è che vorrei fare in modo che se la tabella esiste, l'utente sia avvisato che la tabella già esiste, e lasciare a lui la possibilità di droppare la vecchia per creare la nuova. Grazie in anticipo. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2002
Città: Sicilia
Messaggi: 151
|
fai un SHOW TABLES
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Io pensavo (in termini di pseudo codice) a qualcosa del genere: Codice:
userButtonAction() { string controllaNomeTabella = "SELECT TABLE NAME FROM DB" //che so non esistere come comando" MySqlCommand cmd = new MySqlCommand(controllaNomeTabella, myConnectionToDb); string result = cmd.ExecuteScalar().ToString(); if(result == "nomeTabella") { //qui ci metto un dialog box con due opzioni: //scegli si per eliminare la vecchia tabella e creare la nuova //no per annullare l'operazione } else { //creo la tabella Grazie mille ![]() RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Allora fai una query SHOW TABLES, fai il fetch dei risultati e cerca se tra questi c'è la tabella che ti interessa.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Mai hai già fatto delle query MySQL con PHP??? Si fa la solita mysql_connect(), poi mysql_select_db(), poi la query con mysql_query(), quindi un ciclo con una mysql_fetch_array() per prendere riga x riga. SHOW TABLES ritorna 1 sola colonna, quindi basta prendere la colonna [0] e testare il nome della tabella.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
I metodi a disposizione del comando MySqlCommand sono sostanzialmente 2: MySqlCommand.ExecuteNonQuery() che ritorna un int MySqlCommand.ExecuteScalar().ToString() che ritorna appunto una stringa. Ora devo solo perdere un pò di tempo a documentarmi su come estrapolare dal secondo metodo, solo la stringa che mi interessa. Nel frattempo, grazie mille per il sostegno ![]() RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Al momento sono giunto a questa conclusione:
Codice:
string showTables = "SHOW TABLES"; MySqlCommand cmd = new MySqlCommand(showTables, connection); MySqlDataReader dr = cmd.ExecuteReader(); while(dr.Read()) { string tablesInDb = dr[0].ToString(); if(tablesInDb == "nome_tabella_target") { //azione utente per gestire la creazione ex-novo oppure per modificare la tabella già esistente... } } //blabla
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:02.