|
|||||||
|
|
|
![]() |
|
|
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: 20:26.




















