mysqldump does not preserve table name case when dumping tables on my
Windows platform.

Distribution file name:  mysql-3.23.49-win.zip

C:\mysql\bin>mysqladmin version
mysqladmin  Ver 8.23 Distrib 3.23.49, for Win95/Win98 on i32
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          3.23.49-nt
Protocol version        10
Connection              . via named pipe
UNIX socket             MySQL
Uptime:                 4 days 18 min 49 sec

Threads: 2  Questions: 4928  Slow queries: 0  Opens: 215  Flush tables: 
1  Open
tables: 0 Queries per second avg: 0.014

The DROP TABLE and INSERT statements have the proper case for the
table name but the create table statement has the wrong case:

C:\mysql\bin> mysqldump --add-drop-table -u adapt --password=adapt 
Security Maps

-- MySQL dump 8.21
--
-- Host: localhost    Database: Security
---------------------------------------------------------
-- Server version       3.23.49-nt

--
-- Table structure for table 'Maps'
--

DROP TABLE IF EXISTS Maps;
CREATE TABLE maps (
   ID int(11) NOT NULL auto_increment,
   Modified timestamp(14) NOT NULL,
   StatusBy varchar(32) default '',
   Name varchar(40) default '',
   NodeID varchar(40) default '',
   MapImageFile varchar(200) default '',
   Description varchar(200) default '',
   StatusByIP varchar(50) default '',
   PRIMARY KEY  (ID),
   KEY MapID (ID)
) TYPE=MyISAM;

--
-- Dumping data for table 'Maps'
--

INSERT INTO Maps VALUES (1,20011130193808,'guest','Back 
Office','','1room.jpg','
Shows the back room development office','');

C:\mysql\bin>

All tables were loaded using .sql files created using mysqldump on a
Unix system; these .sql files had the proper case.

Consider "Show Tables":

mysql> show tables;
+----------------------+
| Tables_in_Security   |
+----------------------+
| accesspoints         |
| affiliations         |
| alarms               |
| areas                |
| buildings            |
| clearances           |
| departments          |
| devices              |
| devicetypes          |
| eventdefinitions     |
| eventlog             |
| loginhistory         |
| maintainers          |
| maps                 |
| mapsob               |
| people               |
| peoplepermissions    |
| population           |
| prefixes             |
| standardpermissions  |
| standardpermissionse |
| suffixes             |
| visitmembers         |
| visitors             |
| visitpermissions     |
| visits               |
+----------------------+
26 rows in set (0.00 sec)

mysql>

All case names are in lower case even though the CreateTable
statements had mixed case.  Having loaded these tables, the mysql
monitor appears not to care about case:

mysql> select ID from Maps;
+----+
| ID |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

mysql> select ID from maps;
+----+
| ID |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

mysql>

This would be OK with respect to using the data on Windows, but we
plan to use mysaqldump to transfer tables between Windows and Unix
machines.  This doesn't work well if we load a wrong-case .sql file
into a Unix MySQL, the old table is deleted but the new table is
loaded under the wrong name.

Thanks.

Bill Taylor


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to