> I think MySQL has a little ways to go yet before I would subjectively
> call it best.
>
> I posted twice to the list with questions about porting my application
> that
> runs on (SQL Server, Oracle, PostgreSQL, Sybase SQL Anywhere, MS Access,
> and
> DB2) to MySQL. No one on the mysql list, or the internals list responded
> to my pretty basic issues:
>
> 1) Why can't I declare a datetime field with DEFAULT NOW()
Because MySQL only lets you declare constants as defaults. Timestamp
fields are an exception hack. I can understand why you might want to
port applications from SQL Server/Oracle/Sybase/Access/DB2 to MySQL, but
if you already have an app on PostgreSQL, why would you want to port it
to MySQL? In that case you already have a "free" database that does what
you want.
> 2) Since the SQL standard states that identifiers are not case
> sensitive, how can I use the DB without case sensitivity, when I don't
> have authority to change the system wide lowercase setting? I wouldn't have
> authority to change the setting in a hosted environment.
If this is your worst gripe about MySQL's compliance with SQL standards,
you have obviously not tried to use it for very complex things...
> I have to say, MySQL still looks like a tinker-toy to me.
It is - but for most purposes it is "good enough".
If your applications grows to exceeds it's capabilities, provided you
have written your queries in a reasonable and sensible way (_especially_
including NOT using MySQL proprietary extensions, and particularly using
enum() fields (which are an insane idea in what is supposed to be a
RELATIONAL database - but that's a whole different rant)), porting to a
database with the extra features you require can be fairly painless.
Porting the data and table structures is certainly simple enough. (I
have written scripts to do this in a matter of hours in the past - the
existing porting scripts are next to useless).
Gordan