sql >> Databáze >  >> RDS >> PostgreSQL

Migrace z MySQL na PostgreSQL

Steve, musel jsem přenést svou starou aplikaci, to je PgSQL->MySQL. Musím říct, že byste se měli považovat za šťastného;-) Běžné problémy jsou:

  • SQL je ve skutečnosti velmi blízko jazykovému standardu, takže můžete trpět dialektem MySQL, který již znáte
  • MySQL tiše zkracuje varchary, které překračují maximální délku, zatímco Pg si stěžuje - rychlým řešením je mít tyto sloupce jako 'text' namísto 'varchar' a používat spouštěče ke zkrácení dlouhých řádků
  • místo obrácených apostrofů se používají dvojité uvozovky
  • Booleovská pole jsou porovnávána pomocí operátorů IS a IS NOT, nicméně INT(1) kompatibilní s MySQL s =a <> je stále možné
  • není zde žádné REPLACE, použijte kombinaci DELETE/INSERT
  • Pg je docela přísný na vynucování integrity cizích klíčů, takže nezapomeňte použít ON DELETE CASCADE na reference
  • Pokud používáte PHP s PDO, nezapomeňte předat parametr metodě lastInsertId() – měl by to být název sekvence, který se obvykle vytváří takto:[název_tabulky]_[název primárního klíče]_seq

Doufám, že to alespoň trochu pomůže. Užijte si spoustu zábavy při hraní s Postgres!



  1. SQL Server – Odeberte všechny netisknutelné znaky ASCII

  2. mysql název pole z proměnné

  3. SQLite FULL OUTER JOIN emulace

  4. Může PostgreSQL provést spojení mezi dvěma uloženými procedurami SQL Serveru?