I'm using ver 4.0.12, checked for bugs in ver 4.0.12(http://bugs.mysql.com/search.php) but couldn't find this one.
CREATE TABLE software ( softwareID VARCHAR(20) NOT NULL, softwareName VARCHAR(100), softwareVers VARCHAR(20), installedDate DATE, softwareSource BLOB, softwareNote BLOB, localMods BLOB, PRIMARY KEY (softwareID) ) TYPE=INNODB;
CREATE TABLE software_machineOSs (
softwareID VARCHAR(20) NOT NULL,
osName VARCHAR(20) NOT NULL,
osRevision VARCHAR(20),
INDEX (softwareID),
FOREIGN KEY (softwareID) REFERENCES software (softwareID) ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY (softwareID, osName)
) TYPE=INNODB;
insert into software (softwareID,softwareName,softwareVers,installedDate,softwareSource)
values ("vim-1.1", "vim", "1.1", NOW(), "www.test.com.au");
insert into software_machineOSs (softwareID,osName,osRevision) values ("vim-1.1", "sun", "8");
mysql> select * from software;
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| softwareID | softwareName | softwareVers | installedDate | softwareSource | softwareNote | localMods |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| vim-1.1 | vim | 1.1 | 2003-10-28 | www.test.com.au | NULL | NULL |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
1 row in set (0.00 sec)
mysql> select * from software_machineOSs; +------------+--------+------------+ | softwareID | osName | osRevision | +------------+--------+------------+ | vim-1.1 | sun | 8 | +------------+--------+------------+ 1 row in set (0.00 sec)
mysql> update software set softwareID="vi-3" where softwareID="vim-1.1" ; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from software;
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| softwareID | softwareName | softwareVers | installedDate | softwareSource | softwareNote | localMods |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| vi-3 | vim | 1.1 | 2003-10-28 | www.test.com.au | NULL | NULL |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
1 row in set (0.00 sec)
mysql> select * from software_machineOSs; +------------+--------+------------+ | softwareID | osName | osRevision | +------------+--------+------------+ | vi-3 | sun | 8 | +------------+--------+------------+ 1 row in set (0.01 sec)
*********************** WORKS OK SO FAR BUT ********************************
CREATE TABLE software ( softwareID CHAR(20) NOT NULL, softwareName CHAR(100), softwareVers CHAR(20), installedDate DATE, softwareSource BLOB, softwareNote BLOB, localMods BLOB, PRIMARY KEY (softwareID) ) TYPE=INNODB;
CREATE TABLE software_machineOSs (
softwareID CHAR(20) NOT NULL,
id INT(2) unsigned zerofill NOT NULL auto_increment,
osName CHAR(20),
osRevision CHAR(20),
INDEX (softwareID),
FOREIGN KEY (softwareID) REFERENCES software (softwareID) ON DELETE CASCADE ON UPDATE CASCADE,
KEY(id),
PRIMARY KEY (softwareID, id)
) TYPE=INNODB;
insert into software (softwareID,softwareName,softwareVers,installedDate,softwareSource)
values ("vim-1.1", "vim", "1.1", NOW(), "www.test.com.au");
insert into software_machineOSs (softwareID,osName,osRevision) values ("vim-1.1", "sun", "8");
mysql> select * from software;
ysql> select * from software;
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| softwareID | softwareName | softwareVers | installedDate | softwareSource | softwareNote | localMods |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| vim-1.1 | vim | 1.1 | 2003-10-28 | www.test.com.au | NULL | NULL |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
1 row in set (0.00 sec)
mysql> select * from software_machineOSs; +------------+----+--------+------------+ | softwareID | id | osName | osRevision | +------------+----+--------+------------+ | vim-1.1 | 01 | sun | 8 | +------------+----+--------+------------+ 1 row in set (0.00 sec)
mysql> update software set softwareID="vi-3" where softwareID="vim-1.1"; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from software;
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| softwareID | softwareName | softwareVers | installedDate | softwareSource | softwareNote | localMods |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
| vi-3 | vim | 1.1 | 2003-10-28 | www.test.com.au | NULL | NULL |
+------------+--------------+--------------+---------------+-----------------+--------------+-----------+
1 row in set (0.00 sec)
mysql> select * from software_machineOSs; ERROR 2013: Lost connection to MySQL server during query
mysql> select * from software_machineOSs; ERROR 2006: MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: dept_db
ERROR 2013: Lost connection to MySQL server during query
*****************************************************************************************
Only different is auto_increment id, The reason for to have key for the id is otherwise it failes.
mysql> create table test (
-> name CHAR(20) NOT NULL,
-> id INT(2) unsigned zerofill NOT NULL auto_increment,
-> PRIMARY KEY(name, id)
-> ) TYPE=INNODB;
ERROR 1075: Incorrect table definition; There can only be one auto column and it must be defined as a key
mysql>
mysql> create table test ( -> name CHAR(20) NOT NULL, -> id INT(2) unsigned zerofill NOT NULL auto_increment, -> KEY(id), -> PRIMARY KEY(name, id) -> ) TYPE=INNODB; Query OK, 0 rows affected (0.00 sec)
--
warm regards Vinita Vigine Murugiah Email : [EMAIL PROTECTED] Ph : (03) 8344 1273
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]