Michael,
----- Original Message -----
From: <[EMAIL PROTECTED]>
Newsgroups: mailing.database.myodbc
Sent: Wednesday, December 24, 2003 1:45 AM
Subject: Foreign Keys in CREATE TABLEs produced by mysqldump
> --=_alternative 008277CD88256E05_=
> Content-Type: text/plain; charset="US-ASCII"
>
> First let me state that this is not a question where a valid answer is to
> SET FOREIGN_KEY_CHECKS=0... (no, its not *that* question..)
>
> I have noticed that mysqldump includes the database name in foreign key
> specifications within CREATE TABLEs. This is causing a bit of grief as I
> would like to reimport such a dumped data set with a *different* database
> name (multiple instances of a data set being created for development, qa,
> and ua purposes..) Is there any way to modify this behaviour? I would
> prefer not to have to modify a mysqldump'ed file to have it reimported (at
> all!)
this is the question where the valid answer is: upgrade!
InnoDB no longer prints the database name in SHOW CREATE TABLE:
[EMAIL PROTECTED]:~/mysql-4.0/client> mysql test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.17-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE TABLE parent(id INT NOT NULL,
-> PRIMARY KEY (id)) TYPE=INNODB;
Query OK, 0 rows affected (0.08 sec)
mysql> CREATE TABLE child(id INT, parent_id INT,
-> INDEX par_ind (parent_id),
-> FOREIGN KEY (parent_id)
-> REFERENCES parent(id)
-> ON DELETE CASCADE) TYPE=INNODB;
Query OK, 0 rows affected (0.02 sec)
mysql> show create table child;
+-------+-------------------------------------------------------------------
----
----------------------------------------------------------------------------
----
--------------------------------------------------------------------------+
| Table | Create Table
|
+-------+-------------------------------------------------------------------
----
----------------------------------------------------------------------------
----
--------------------------------------------------------------------------+
| child | CREATE TABLE `child` (
`id` int(11) default NULL,
`parent_id` int(11) default NULL,
KEY `par_ind` (`parent_id`),
CONSTRAINT `0_15` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`) ON
DELE
TE CASCADE
) TYPE=InnoDB |
+-------+-------------------------------------------------------------------
----
----------------------------------------------------------------------------
----
--------------------------------------------------------------------------+
1 row in set (0.03 sec)
mysql>
> In addition, is there a known bug with 3.23.58 where reading bulk queries
> is very slow? (i.e., mysql FOODB < foodb.dump.) Ever since upgrading (on
> FreeBSD 5.2-RC1) this is horrendously slow. Almost NO cpu time is consumed
> by any process involved, and both server/client processes are often in
> state 'S' (sleeping for less than 20 seconds.) This also occurs when using
> a client running on a linux machine to feed data to the aforementioned
> mysqld on the FreeBSD host. I'm about to break up my dumps into
> table-specific files so that I can use LOAD DATA INFILE to help work
> around this problem.
The following may explain this:
"
MySQL/InnoDB-3.23.57, June 20, 2003
Changed the default value of innodb_flush_log_at_trx_commit from 0
to 1. If you have not specified it explicitly in your my.cnf, and your
application runs much slower with this new release, it is because
the value 1 causes a log flush to disk at each transaction commit.
"
> -mike
Merry Christmas!
Heikki
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]