sql >> Databasteknik >  >> RDS >> PostgreSQL

Migrera från MySQL till PostgreSQL

Steve, jag var tvungen att migrera min gamla applikation, det vill säga PgSQL->MySQL. Jag måste säga att du bör betrakta dig själv som lycklig;-)Vanliga godchas är:

  • SQL är faktiskt ganska nära språkstandarden, så du kan lida av MySQL:s dialekt som du redan känner till
  • MySQL trunkerar tyst varchar som överskrider maxlängden, medan Pg klagar - en snabb lösning är att ha dessa kolumner som "text" istället för "varchar" och använda triggers för att trunkera långa rader
  • dubbla citattecken används istället för omvända apostrof
  • booleska fält jämförs med IS- och IS NOT-operatorer, men MySQL-kompatibel INT(1) med =och <> är fortfarande möjlig
  • det finns ingen ERSÄTT, använd kombinationen DELETE/INSERT
  • Pg är ganska strikt när det gäller att upprätthålla integritet för främmande nycklar, så glöm inte att använda ON DELETE CASCADE på referenser
  • om du använder PHP med PDO, kom ihåg att skicka en parameter till metoden lastInsertId() - det ska vara sekvensnamn, vilket vanligtvis skapas på följande sätt:[tabellnamn]_[primärnyckelnamn]_seq

Jag hoppas att det hjälper åtminstone lite. Ha mycket kul när du spelar med Postgres!



  1. Varför kan jag inte utföra en aggregatfunktion på ett uttryck som innehåller ett aggregat men jag kan göra det genom att skapa en ny select-sats runt det?

  2. Kan flera primära nycklar finnas på ett enda bord?

  3. Använda roller som är nya i MySQL 8

  4. Allt du bör veta om SQL Server JOINS