sql >> Database >  >> RDS >> Mysql

Vergelijk twee MySQL-databases

Als je met kleine databases werkt, heb ik ontdekt dat mysqldump op beide databases draait met de --skip-comments en --skip-extended-insert opties om SQL-scripts te genereren, dan werkt het uitvoeren van diff op de SQL-scripts redelijk goed.

Door opmerkingen over te slaan vermijd je betekenisloze verschillen, zoals de tijd waarop je de opdracht mysqldump hebt uitgevoerd. Met behulp van de --skip-extended-insert commando zorgt u ervoor dat elke rij wordt ingevoegd met zijn eigen insert-instructie. Dit elimineert de situatie waarin een enkel nieuw of gewijzigd record een kettingreactie kan veroorzaken in alle toekomstige insert-statements. Als u met deze opties werkt, produceert u grotere dumps zonder opmerkingen, dus dit is waarschijnlijk niet iets dat u in productie wilt doen, maar voor ontwikkeling zou het goed moeten zijn. Ik heb voorbeelden van de commando's die ik gebruik hieronder gezet:

mysqldump --skip-comments --skip-extended-insert -u root -p dbName1>file1.sql
mysqldump --skip-comments --skip-extended-insert -u root -p dbName2>file2.sql
diff file1.sql file2.sql


  1. SqlServer:Inloggen mislukt voor gebruiker

  2. Zoek de maximale opeenvolgende jaren voor elke ID in een tabel (Oracle SQL)

  3. Is er een Oracle-equivalent van OUTPUT INSERTED.* van SQL Server?

  4. Hoe verander ik een PG-kolom in NULLABLE TRUE?