Mailinglisten-Archive |
Hi, On Fri, Dec 15, 2000 at 05:16:57PM +0100, Volker Jahns wrote: > Deine Kompetenz befragend, wie aufwendig ist es mySQL durch postgresSql > auszutauschen? *Eigentlich* ist ein solcher Tausch MySQL => PostgreSQL relativ problemlos moeglich. Das liegt einfach daran, dass MySQL "so wenig" Features bietet (keine Transaktionen, keine Views, keine stored Procedures, keine Trigger, keine referentielle Integritaet, etc.). Es gibt einige kleinere Fallstricke; hier beispielhaft einiges, was mir vorgestern und gestern beim "Portieren" einer groesseren Web-Applikation von MySQL nach PostgreSQL mal wieder begegnete: * Attributnamen sind case-insensitive; Gross- und Kleinschreibung *kann* auf Wunsch unterschieden werden, wenn man die Bezeichnungen in Anfuehrungszeichen setzt. * Vergleiche auf Zeichenketten sind "case-sensitive" (bei MySQL nur bei "binary") * 'auto_increment' Felder gibt es 'so' nicht und muessen durch Verwendung von "Sequenzen" implementiert werden. Der "Pseudo-Datentyp" SERIAL hilft aber beim "impliziten" Verwenden von Sequenzen. * PostgeSQL unterstuetzt keine (direkten) "Outer Joins". (lassen sich ueber UNION / NOT IN 'simulieren') (dafuer gibt's Sub-Select-Support, ... den man in MySQL simulieren muss ...) * Joins muessen ueber die "... FROM a, b WHERE ( <join-Bedingung> ); formuliert werden. SQL-Statements die eine der moeglichen Variationen von "SELECT * from A JOIN b [...] verwenden, muessen also umformuliert werden * Kein "REPLACE INTO" ... arggh. Das hat mir am meisten Schmerzen bereitet. Man muss sauber zwischen "INSERT" und "UPDATE" unterscheiden und jeweils passendes SQL generieren. Die "Rueckrichtung" (PostgreSQL => MySQL) waere jedenfalls deutlich aufwendiger ;) > Sofern ich keine Besonderheiten von mySQL nutze müsste doch der > PHP-Source 100% portable sein Die MySQL-Commands ausgetauscht). Wir verwenden die DB-Layer aus der PHPLib. > Ist dem so oder liefert pgSQL gänzlich andere return values? Nein. Insbesondere, wenn man in seinen Applikationen einer der verfuegbaren DB-Abstraktions-APIs einsetzt. -Andreas -- : Anti-Spam Petition: http://www.politik-digital.de/spam/ : : PGP-Key: http://www.tse-online.de/~ab/public-key : : Key fingerprint: 12 13 EF BC 22 DD F4 B6 3C 25 C9 06 DC D3 45 9B :
php::bar PHP Wiki - Listenarchive