sql >> Database teknologi >  >> RDS >> PostgreSQL

Migrering fra MySQL til PostgreSQL

Steve, jeg var nødt til at migrere min gamle applikation den vej rundt, det vil sige PgSQL->MySQL. Jeg må sige, du bør betragte dig selv som heldig;-) Fælles gotchas er:

  • SQL er faktisk ret tæt på sprogstandarden, så du kan lide af MySQL's dialekt, du allerede kender
  • MySQL trunkerer stille og roligt varchars, der overstiger maks. længde, hvorimod Pg klager - hurtig løsning er at have disse kolonner som 'tekst' i stedet for 'varchar' og bruge triggere til at afkorte lange linjer
  • Dobbelt anførselstegn bruges i stedet for omvendte apostrof
  • booleske felter sammenlignes med IS- og IS NOT-operatorer, men MySQL-kompatibel INT(1) med =og <> er stadig mulig
  • der er ingen ERSTAT, brug DELETE/INSERT-kombinationen
  • Pg er ret streng med hensyn til at håndhæve fremmednøglers integritet, så glem ikke at bruge PÅ SLET CASCADE på referencer
  • hvis du bruger PHP med PDO, så husk at sende en parameter til lastInsertId() metoden - det skal være sekvensnavn, som normalt oprettes på denne måde:[tabelnavn]_[primærnøglenavn]_seq

Jeg håber det hjælper i det mindste en smule. Hav en masse sjov med at spille med Postgres!



  1. "Kan ikke slippe triggeren"-fejl, når du forsøger at slippe en logon-trigger? Prøv dette.

  2. Returner værdi fra sql-script til shell-script

  3. Tidsstempel med en millisekunds præcision:Sådan gemmer du dem i MySQL

  4. Sådan beregnes procent i PostgreSQL