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