ho le seguenti righe di codice:Non è possibile ottenere query di origine MySQL per lavorare utilizzando il modulo MySQLdb Python
sql = "source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql"
cursor.execute (sql)
Quando eseguo il mio programma, ottengo il seguente errore:
Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source C:\My Dropbox\workspace\projects\hosted_inv\create_site_db.sql' at line 1
Ora posso copiare e incollare quanto segue in mysql come una query:
source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql
E funziona perfettamente. Quando controllo il log delle query per la query eseguita da mio script, dimostra che la mia domanda era la seguente:
source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql
Tuttavia, quando incollo manualmente ed eseguire in, l'intero create_site_db.sql viene ampliato nel registro delle query e mostra tutte le query SQL in quel file.
Mi manca qualcosa qui su come mysqldb esegue query? Sto incontrando una limitazione. Il mio obiettivo è quello di eseguire uno script sql per creare la struttura dello schema, ma non voglio dover chiamare mysql in un processo shell per l'origine del file sql.
Qualche idea? Grazie!
Grazie mille! sql = open ("test.sql"). read() fa esattamente quello che voglio. Volevo evitare di biforcarsi un processo di shell perché non solo non sembrava inutile, ma avrei avuto una dipendenza dai binari del client mysql installati sul sistema da cui eseguivo. Grazie per l'aiuto di tutti! – Chris
Prego Chris – YOU