View Full Version : [SQL-PHP] Saltare query "bloccanti" da phpMyAdmin
ectobsidian
27-10-2014, 16:30
Ciao ragazzi, ho creato un programmino (in realtà in Java ma vabbè) che miu crea delle query SQL e me le salva in un file .SQL
Ho quindi questo file SQL contenente tutte le query che devo far girare in phpMyAdmin.
Il "problema" è che alcune di queste query potrebbero non andare a buon fine, per qualche strano motivo...
C'è un modo di far girare il file SQL caricando tutte le query e "saltando" le query che danno problemi?
Non si può fare direttamente tramite phpMyAdmin?
Si deve fare tramite php? Ma poi come lancio le query sul phpMyAdmin?
Grazie ragazzi!
Daniels118
28-10-2014, 08:39
Non credo che php sia capace di interrompere una query (ma potrei sbagliarmi), dovresti aprire la console di amministrazione di mysql e farlo da lì.
Comunque se le query durano troppo forse dovresti cercare di ottimizzarle oppure creare degli indici.
ectobsidian
28-10-2014, 09:08
Non credo che php sia capace di interrompere una query (ma potrei sbagliarmi), dovresti aprire la console di amministrazione di mysql e farlo da lì.
Comunque se le query durano troppo forse dovresti cercare di ottimizzarle oppure creare degli indici.
Ciao, scusa forse mi sono spiegato male...
Io ho un file .SQL da quasi 8 mb e faccio l'upload da phpMyAdmin (mi fa caricare massimo un file da circa 8 mb, quindi è al limite), qui appena becca una query "bloccante" non mi fa le altre.
L'elaborazione totale sarà di qualche secondo, non è molto.
Da console di amministrazione mysql cosa intendi? Riesco a bypassare il problema?
Daniels118
28-10-2014, 09:39
Puoi definire meglio bloccante?
Non mi è mai capitato di vedere una query che si blocca senza un motivo, forse dura troppo oppure è in corso un'altra query che ha un lock esclusivo su una tabella (ma si tratta di una condizione temporanea).
Forse vuoi dire che va in errore? Tipo chiave duplicata o altro?
ectobsidian
28-10-2014, 09:53
Puoi definire meglio bloccante?
Non mi è mai capitato di vedere una query che si blocca senza un motivo, forse dura troppo oppure è in corso un'altra query che ha un lock esclusivo su una tabella (ma si tratta di una condizione temporanea).
Forse vuoi dire che va in errore? Tipo chiave duplicata o altro?
Esattamente, intendo che va in errore, appunto per chiave duplicata (devo fare delle INSERT) e quindi mi "blocca" le altre query.
Tutto qui.
Daniels118
28-10-2014, 10:10
Allora è semplicissimo, basta che usi la keyword IGNORE, per esempio:
INSERT IGNORE INTO mytable
(primaryKey, field1, field2)
VALUES
('abc', 1, 2),
('def', 3, 4),
('ghi', 5, 6);
ectobsidian
28-10-2014, 10:14
Allora è semplicissimo, basta che usi la keyword IGNORE, per esempio:
INSERT IGNORE INTO mytable
(primaryKey, field1, field2)
VALUES
('abc', 1, 2),
('def', 3, 4),
('ghi', 5, 6);
Mi basta aggiungere la parola "IGNORE" dopo "INSERT" in tutte le query che devo effettuare? Wow!
Funziona! Grandee!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.