I have an application that right now supports SQL Server, Access, DB2,
Oracle 8 & 9, Sybase SQL Anywhere, and PostgreSQL. I thought since version
5.0 was finally supporting views, I would try porting my app to it. These
comments are based on testing 5.0.4 under Linux.

Here are my initial results. I'd appreciate any helpful comments. The
problems I've seen so far are:

DEFAULT clause limitations
TABLE IDENTIFIER CASE SENSITIVITY

So far, I'm stuck and it doesn't look like MySQL 5.0.x will achieve the
level of standards compliance needed to run my cross platform/cross database
application.

**************************************
DEFAULT clause limitations
**************************************
My first pass was to set my date/time fields to DATETIME with DEFAULT NOW().
After some unhelpful error messages I found:

http://dev.mysql.com/doc/mysql/en/create-table.html
The DEFAULT clause specifies a default value for a column. With one
exception, the default value must be a constant; it cannot be a function or
an expression. This means, for example, that you cannot set the default for
a date column to be the value of a function such as NOW() or CURRENT_DATE.
The exception is that

So I thought OK, I'll change to TIMESTAMP with CURRENT_TIMESTAMP. Then I ran
into the limitation that you cannot have more than one timestamp column in a
table with a default of CURRENT_TIMESTAMP()

These are really silly limitations that should be removed in the 5.0.x beta
series. Preferably, datetime should allow DEFAULT NOW().

**************************************
TABLE IDENTIFIER CASE SENSITIVITY
**************************************

My reading of the documentation says that table identifier case sensitivity
depends upon the underlying file system, and that the default can be changed
by a startup variable to the mysql daemon.

I can just see the conversation ...

Me: Gee Mr. Big ISP, I need you to change a global setting on your database
for your customer to run my application:
Mr. Big ISP: Rrrrighttttttt

There really needs to be a session level setting to control this issue. This
is really ridiculous. The SQL Standard says that identifiers are not case
sensitive. My application is probably OK, but this is just ridiculous. Even
if I fix my App, I'll have to verify every sql statement under MySQL to make
sure that it works with it.

George Sexton
MH Software, Inc.
http://www.mhsoftware.com/
Voice: 303 438 9585
 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to