Daniel, I tested this with very small test tables, and it did not crash.
You should run CHECK TABLE on both tables. Maybe they are corrupt. Can you make a repeatable test case that you can email or upload to ftp: support.mysql.com:/pub/mysql/secret ? Best regards, Heikki .............. [EMAIL PROTECTED]:~/mysql-standard-4.0.18-pc-linux-i686/bin> ./mysql test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.0.18-standard-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table -> `Prospects` ( -> `LeadNo` mediumint(8) unsigned NOT NULL auto_increment, -> `MySQLStamp` timestamp(14) NOT NULL, -> `Client` varchar(70) NOT NULL default '', -> `Address` varchar(50) NOT NULL default '', -> `Suburb` varchar(25) NOT NULL default '', -> `State` char(3) NOT NULL default '', -> `PostCode` smallint(6) NOT NULL default '0', -> `BusinessTypeID` smallint(3) unsigned NOT NULL default '0', -> `TelecomSpend` mediumint(8) unsigned NOT NULL default '0', -> `ElectricitySpend` mediumint(8) unsigned NOT NULL default '0', -> `GasSpend` mediumint(8) unsigned NOT NULL default '0', -> `Turnover` bigint(20) unsigned default '0', -> `Region` enum('L','N','I') default 'N', -> `Locations` smallint(6) default '0', -> `Employees` mediumint(8) unsigned default '0', -> `ACN` varchar(11) default '', -> `ParentID` mediumint(8) unsigned NOT NULL default '0', -> `Autonomous` smallint(3) NOT NULL default '0', -> `BusinessDescription` varchar(100) default '', -> `FuelSpend` mediumint(8) unsigned NOT NULL default '0', -> `WebPage` varchar(50) default '', -> `SignedBy` mediumint(8) unsigned default '0', -> `FileNo` mediumint(9) default NULL, -> `SubNo` mediumint(9) default NULL, -> `EnteredBy` mediumint(9) NOT NULL default '0', -> `DateEntered` date default '0000-00-00', -> `TooSmall` datetime default NULL, -> `DontCall` datetime default NULL, -> `Status` smallint(5) unsigned NOT NULL default '0', -> `Archived` date default NULL, -> `EnergySupplier` smallint(5) unsigned default '0', -> `TelecomSupplier` smallint(5) unsigned default '0', -> PRIMARY KEY (`LeadNo`), -> KEY `IDX_BusinessTypeID` (`BusinessTypeID`), -> KEY `IDX_ParentID` (`ParentID`), -> KEY `IDX_DontCall` (`DontCall`), -> KEY `IDX_TooSmall` (`TooSmall`), -> KEY `IDX_PostCode` (`PostCode`), -> KEY `IDX_State` (`State`), -> KEY `IDX_FileNo` (`FileNo`) -> ) TYPE=InnoDB; Query OK, 0 rows affected (0.06 sec) mysql> mysql> mysql> create table -> `Leads` ( -> `DanPK` mediumint(8) unsigned NOT NULL auto_increment, -> `TimeStamp` timestamp(14) NOT NULL, -> `LeadNo` mediumint(9) unsigned NOT NULL default '0', -> `IssueDate` date default NULL, -> `IssuedTo` tinyint(3) unsigned NOT NULL default '0', -> `CompleteDate` date default NULL, -> `Status` tinyint(3) unsigned NOT NULL default '1', -> `Telemarketer` mediumint(9) NOT NULL default '0', -> PRIMARY KEY (`DanPK`), -> KEY `IDX_LeadNo` (`LeadNo`) -> ) TYPE=InnoDB; Query OK, 0 rows affected (0.00 sec) mysql> mysql> insert into Prospects(LeadNo) values (1); Query OK, 1 row affected (0.01 sec) mysql> insert into Prospects(LeadNo) values (2); Query OK, 1 row affected (0.00 sec) mysql> insert into Prospects(LeadNo) values (3); Query OK, 1 row affected (0.00 sec) mysql> insert into Prospects(LeadNo) values (4); Query OK, 1 row affected (0.00 sec) mysql> mysql> mysql> insert into Leads(LeadNo) values (1); Query OK, 1 row affected (0.00 sec) mysql> insert into Leads(LeadNo) values (2); Query OK, 1 row affected (0.00 sec) mysql> insert into Leads(LeadNo) values (3); Query OK, 1 row affected (0.00 sec) mysql> insert into Leads(LeadNo) values (4); Query OK, 1 row affected (0.00 sec) mysql> insert into Leads(LeadNo) values (2); Query OK, 1 row affected (0.00 sec) mysql> mysql> alter table Leads -> add foreign key fk_LeadNo ( LeadNo ) references Prospects ( LeadNo ); Query OK, 5 rows affected (0.01 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> ----- Original Message ----- From: "Daniel Kasak" <[EMAIL PROTECTED]> Newsgroups: mailing.database.myodbc Sent: Friday, July 09, 2004 7:08 AM Subject: MySQL crash on adding foreign key constraint > ------------=_1089346615-12596-119 > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > Content-Transfer-Encoding: 7bit > Content-Disposition: inline > > Hi all. > > I just tried adding a foreign key constraint, and crashed MySQL ( 4.0.18 ). > I tried it again and crashed it again :( > > The SQL I'm using is: > > --- > > alter table Leads > add foreign key fk_LeadNo ( LeadNo ) references Prospects ( LeadNo ); > > --- > > The tables involved: > > `Prospects` ( > `LeadNo` mediumint(8) unsigned NOT NULL auto_increment, > `MySQLStamp` timestamp(14) NOT NULL, > `Client` varchar(70) NOT NULL default '', > `Address` varchar(50) NOT NULL default '', > `Suburb` varchar(25) NOT NULL default '', > `State` char(3) NOT NULL default '', > `PostCode` smallint(6) NOT NULL default '0', > `BusinessTypeID` smallint(3) unsigned NOT NULL default '0', > `TelecomSpend` mediumint(8) unsigned NOT NULL default '0', > `ElectricitySpend` mediumint(8) unsigned NOT NULL default '0', > `GasSpend` mediumint(8) unsigned NOT NULL default '0', > `Turnover` bigint(20) unsigned default '0', > `Region` enum('L','N','I') default 'N', > `Locations` smallint(6) default '0', > `Employees` mediumint(8) unsigned default '0', > `ACN` varchar(11) default '', > `ParentID` mediumint(8) unsigned NOT NULL default '0', > `Autonomous` smallint(3) NOT NULL default '0', > `BusinessDescription` varchar(100) default '', > `FuelSpend` mediumint(8) unsigned NOT NULL default '0', > `WebPage` varchar(50) default '', > `SignedBy` mediumint(8) unsigned default '0', > `FileNo` mediumint(9) default NULL, > `SubNo` mediumint(9) default NULL, > `EnteredBy` mediumint(9) NOT NULL default '0', > `DateEntered` date default '0000-00-00', > `TooSmall` datetime default NULL, > `DontCall` datetime default NULL, > `Status` smallint(5) unsigned NOT NULL default '0', > `Archived` date default NULL, > `EnergySupplier` smallint(5) unsigned default '0', > `TelecomSupplier` smallint(5) unsigned default '0', > PRIMARY KEY (`LeadNo`), > KEY `IDX_BusinessTypeID` (`BusinessTypeID`), > KEY `IDX_ParentID` (`ParentID`), > KEY `IDX_DontCall` (`DontCall`), > KEY `IDX_TooSmall` (`TooSmall`), > KEY `IDX_PostCode` (`PostCode`), > KEY `IDX_State` (`State`), > KEY `IDX_FileNo` (`FileNo`) > ) TYPE=InnoDB > > `Leads` ( > `DanPK` mediumint(8) unsigned NOT NULL auto_increment, > `TimeStamp` timestamp(14) NOT NULL, > `LeadNo` mediumint(9) unsigned NOT NULL default '0', > `IssueDate` date default NULL, > `IssuedTo` tinyint(3) unsigned NOT NULL default '0', > `CompleteDate` date default NULL, > `Status` tinyint(3) unsigned NOT NULL default '1', > `Telemarketer` mediumint(9) NOT NULL default '0', > PRIMARY KEY (`DanPK`), > KEY `IDX_LeadNo` (`LeadNo`) > ) TYPE=InnoDB > > --- > > Maybe my syntax of my SQL is wrong ( haven't done this in a while ), but > it surely shouldn't crash MySQL. > > I'm getting the following in the error log: > > --- > > Number of processes running now: 1 > mysqld process hanging, pid 12801 - killed > 040709 14:04:29 mysqld restarted > Warning: Ignoring user change to 'mysql' because the user was set to > 'mysql' earlier on the command line > 040709 14:04:30 InnoDB: Database was not shut down normally. > InnoDB: Starting recovery from log files... > InnoDB: Starting log scan based on checkpoint at > InnoDB: log sequence number 0 1299171801 > InnoDB: Doing recovery: scanned up to log sequence number 0 1299171801 > InnoDB: Last MySQL binlog file position 0 2135037, file name > ./screamer-bin.264 > 040709 14:04:30 InnoDB: Flushing modified pages from the buffer pool... > 040709 14:04:30 InnoDB: Started > /usr/sbin/mysqld: ready for connections. > Version: '4.0.18-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 > > Number of processes running now: 1 > mysqld process hanging, pid 1529 - killed > 040709 14:05:45 mysqld restarted > Warning: Ignoring user change to 'mysql' because the user was set to > 'mysql' earlier on the command line > 040709 14:05:45 InnoDB: Database was not shut down normally. > InnoDB: Starting recovery from log files... > InnoDB: Starting log scan based on checkpoint at > InnoDB: log sequence number 0 1299172664 > InnoDB: Doing recovery: scanned up to log sequence number 0 1299172664 > InnoDB: Last MySQL binlog file position 0 1398, file name ./screamer-bin.265 > 040709 14:05:45 InnoDB: Flushing modified pages from the buffer pool... > 040709 14:05:45 InnoDB: Started > /usr/sbin/mysqld: ready for connections. > Version: '4.0.18-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 > > --- > > I haven't had ANY issues with this system / MySQL installation, ever. > Should I create a bug report? The problem is "quite reproducable" ... at > least for me. > > -- > Daniel Kasak > IT Developer > NUS Consulting Group > Level 5, 77 Pacific Highway > North Sydney, NSW, Australia 2060 > T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989 > email: [EMAIL PROTECTED] > website: http://www.nusconsulting.com.au > > > ------------=_1089346615-12596-119 > Content-Type: text/plain; charset=us-ascii > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > ------------=_1089346615-12596-119-- -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]