"Tim Hayes" <[EMAIL PROTECTED]> wrote on 23/02/2004 16:15:36:

> Can anyone offer advice?
>
> I have come across a MySQL database on Linux with duplicate table
> names - "Accounts" and "accounts". This seems fine on Linux, but
> does not transfer to the Windows environment - it is rejected
> because of the duplicate name. However I do see that Column Names
> have to be unique in both environments.
>
> Q. Is there some sort of practical advantage for having case
> sensitive table names in Linux, or is this a design "shortcoming"?
> Postgress rejects duplicate table names.

It is a design feature - shortcoming if you will. For MyISAM tables, each
table is a file (well, three files). The table name therefore shares the
case (in)sensitivity of the underlying OS. The same will apply to database
names, because they are directories, but not to column names because they
are concealed inside the data files.

There is no right answer to the question of case sensitivity. Mostly it
will depend from which direction you approach the problem. As someone who
uses both Windows and Linux, I can put on a different mental hat and get a
different "correct" answer each time I approach the question.

Anyway, theoretical elegance is irrelevant: you have to live with the world
as you find it. In practice, I have found the only solution that works is
lower case table names only. Obviously, this is too late for you - you have
"duplicate" tables already.

I imagine the problem would not occur with InnoDB tables, which put all the
tables into a single data space (perhaps someone could confirm). In  which
case you could solve the problem by changing table types.

      Alec




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

Reply via email to