phpbar.de logo

Mailinglisten-Archive

[php] Frage zum Thema

[php] Frage zum Thema

Andreas Braukmann braukmann_(at)_tse-online.de
Sat, 16 Dec 2000 00:06:44 +0100


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