Sto tentando di utilizzare mysqldump per esportare un database che deve essere importato utilizzando un nome di database diverso. Guardando l'SQL generato da mysqldump, sembra che i trigger siano gli unici nomi di oggetti che sono pienamente qualificati con il nome del database di origine, sventando così le mie esigenze. Esiste comunque la possibilità di dirigere mysqldump per non qualificare in modo completo tutti i nomi degli oggetti compresi i trigger?mysqldump abilita completamente i trigger con il nome del database
risposta
Ho avuto lo stesso problema e ho trovato la soluzione. Stavo usando MySQL Workbench per progettare il mio database e lì ho creato alcuni trigger. Tutti hanno usato la sintassi CREATE TRIGGER trigger_name
eccetto uno: CREATE TRIGGER dbname.trigger_name
(era solo un mio errore). L'output di Mysqldump includeva tutti i trigger nello stesso modo: solo uno aveva il nome del database.
Mysqldump utilizza le istruzioni originali CREATE TRIGGER
che è possibile vedere tramite SHOW CREATE TRIGGER
. Se si dispone di un trigger definito con un nome di database, è sufficiente sostituirlo (rilascia e crea) con uno senza dbname.
Molto probabilmente si aggiunge il nome del database quando si crea il trigger. Prova ad aggiornare il trigger senza il nome del database.
è da un po 'che non ho avuto a che fare con questo, ma sono abbastanza sicuro che il problema non era dovuto alla creazione dei trigger utilizzando il nome completo del database: mysqldump genererebbe lo script di creazione del trigger con il nome del database pienamente qualificato indipendentemente da come li ho creati. –
Non è una soluzione ideale, ma il pompaggio dell'output nel seguente modo ha eliminato il nome del database sui trigger per me.
mysqldump ... opts ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'
- 1. mysqldump parziale del database
- 2. backup del database mysql con mysqldump
- 3. mysqldump con create database line
- 4. Trigger con nome target
- 5. Disabilita Abilita server Trigger SQL
- 6. Suddividere un file mysqldump con più database, per database
- 7. Abilita/disabilita l'utilizzo del nome [JsonProperty] specificato
- 8. Uso di utenti mysqldump e database
- 9. mysqldump non crea la sintassi del database di creazione
- 10. ASP.NET EntityFramework ottiene il nome del database
- 11. PgSQL - Come importare il dump del database solo quando il database è completamente vuoto?
- 12. Database SQL completamente vuoto
- 13. Modificare il nome del database logico con SMO
- 14. Mysql: eseguire il dump del database lungo i dati
- 15. Heroku nome del database PostgreSQL
- 16. ripristino con mysqldump, ma dove sono i dati?
- 17. Abilita il bind del comando per TextBlock
- 18. mysqldump con db in un file separato
- 19. Come eseguire il backup completo del database mysql utilizzando l'utilità della riga di comando mysqldump
- 20. Entity Framework con i trigger invece di
- 21. Polling lungo con i dati del database?
- 22. Configura i parametri del trigger LED dallo spazio del kernel
- 23. Come si elencano tutti i trigger in un database MySQL?
- 24. Come si impedisce l'insorgenza di un trigger del database?
- 25. Modifica del nome di un database SQL
- 26. Come vengono implementati i trigger di database all'interno di un motore di database SQL?
- 27. Prendi il nome del database mysql collegato (JDBC)
- 28. I trigger ItemView scoppiano?
- 29. FluentValidation convalida del nome univoco tramite database
- 30. Abilita il debug USB tramite Clockworkmod con adb
Non lo verificherò (sono passati più di due anni da quando ne avevo avuto bisogno, e non ne avrò bisogno nel prossimo futuro), ma suona come una soluzione plausibile e pratica, quindi sto marcando è la risposta! Grazie per la condivisione. –
Ha, vedo @emre ha effettivamente suggerito questa soluzione più di un anno fa e l'ho abbattuto. In ogni caso, il suo era un sospetto e la tua è un'insistenza, quindi ti lascio con la risposta marcata. Certamente se qualcuno trova prove del contrario, lo considereremo allora. Per ora, penso ci siano buone possibilità che i tuoi consigli aiuteranno gli altri. –
bene, l'ho appena testato, perché avevo lo stesso problema. Se è importante, la mia versione del server MySQL è 5.5.29-0ubuntu0.12.04.1 – ducin