sql >> Database >  >> RDS >> PostgreSQL

Migreren van MySQL naar PostgreSQL

Steve, ik moest mijn oude applicatie de andere kant op migreren, dat is PgSQL->MySQL. Ik moet zeggen dat je jezelf gelukkig mag prijzen;-) Veelvoorkomende valkuilen zijn:

  • SQL komt eigenlijk vrij dicht bij de taalstandaard, dus u kunt last hebben van het MySQL-dialect dat u al kent
  • MySQL kapt stilletjes varchars af die de maximale lengte overschrijden, terwijl Pg klaagt - een snelle oplossing is om deze kolommen als 'tekst' in plaats van 'varchar' te gebruiken en triggers te gebruiken om lange regels af te kappen
  • dubbele aanhalingstekens worden gebruikt in plaats van omgekeerde apostrofs
  • booleaanse velden worden vergeleken met behulp van IS en IS NOT operators, maar MySQL-compatibele INT(1) met =en <> is nog steeds mogelijk
  • er is geen REPLACE, gebruik de DELETE/INSERT combo
  • Pg is behoorlijk streng in het afdwingen van de integriteit van buitenlandse sleutels, dus vergeet niet ON DELETE CASCADE te gebruiken voor referenties
  • als je PHP met PDO gebruikt, vergeet dan niet om een ​​parameter door te geven aan de lastInsertId()-methode - het moet de reeksnaam zijn, die meestal op deze manier wordt gemaakt:[tabelnaam]_[naam primaire sleutel]_seq

Ik hoop dat dat in ieder geval een beetje helpt. Veel plezier bij het spelen met Postgres!



  1. Hoe LOG10() werkt in MariaDB

  2. Hoe een JSON-kolom op te vragen in MySQL

  3. Juli 2016 PSU kan isqora . niet maken

  4. Een bug voor de schatting van de kardinaliteit van de subquery