Hi Mysql, This is a bug report.
There are two cases, because the bug is quite old, I detected it the first time a year ago on a 3.23.44 with MyISAM, but I thought it would be fixed soon, sorry. This bug happens in 4.0.8 too with MyISAM tables. Test Case 1 ----------- Operating System: Linux Intel, SuSE 6.3 (Kernel 2.2.13) Processor : ADM K6-2 400 System RAM : 128M Disk Subsystem : SCSI-2 (dpt) FIle Sytem handler : ext2 MySQL version: mysql-max-3.23.49a-linux-gnu-i686 Table Handler: Derkeley DB. Symptom : Two colums are updated insted of one. ---the script starts here---- create database prueba; use prueba; create table pr (a int, b timestamp, c timestamp, d timestamp, e int) type=bdb; insert into pr values (0, now(), now(), now(), 1); select * from pr; # # Insert a delay here !!! # update pr set c=now(); select * from pr; ----the script ends here----- the output from `mysql -t <pr1.sql>sal' client is: +------+----------------+----------------+----------------+------+ | a | b | c | d | e | +------+----------------+----------------+----------------+------+ | 0 | 20030324145209 | 20030324145209 | 20030324145209 | 1 | +------+----------------+----------------+----------------+------+ +------+----------------+----------------+----------------+------+ | a | b | c | d | e | +------+----------------+----------------+----------------+------+ | 0 | 20030324145304 | 20030101100000 | 20030324145209 | 1 | +------+----------------+----------------+----------------+------+ As you can see the colum `b' is updated, too. Note, you have to insert a delay of almost 1 second between the first select and the update, because the column `b' takes the current time!. Only happens with timestamp columns not with datetime ones. Test Case 2 ----------- Operating System: Linux Intel, RedHat 7.3 6.3 (Kernel 2.4.18) Processor : ADM K6-2 400 System RAM : 128M Disk Subsystem : SCSI-2 (dpt) FIle Sytem handler : ext2 MySQL version: mysql-standard-4.0.12-pc-linux-i686 Table Handler: InnoDB. Symptom : Two colums are updated insted of one. ---the script starts here---- create database prueba2; use prueba2; create table pr (a int, b timestamp, c timestamp, d timestamp, e int) type=innodb; insert into pr values (0, now(), now(), now(), 1); select * from pr; # # Insert a delay here !!! # update pr set c=now(); select * from pr; ----the script ends here----- the output from `mysql -t <pr2.sql>sal' client is: +------+----------------+----------------+----------------+------+ | a | b | c | d | e | +------+----------------+----------------+----------------+------+ | 0 | 20030324145653 | 20030324145653 | 20030324145653 | 1 | +------+----------------+----------------+----------------+------+ +------+----------------+----------------+----------------+------+ | a | b | c | d | e | +------+----------------+----------------+----------------+------+ | 0 | 20030324145739 | 20030101110000 | 20030324145653 | 1 | +------+----------------+----------------+----------------+------+ As you can see the colum `b' is updated, too. Note, you have to insert a delay of almost 1 second between the first select and the update, because the column `b' takes the current time!. Only happens with timestamp columns not with datetime ones. I hope it will help you to make MySQL better. For further information, please don't hesitate to contact me at: [EMAIL PROTECTED] Roebrto Alejandro Paz Schmidt Republica Argentina __________________________________________________ Do you Yahoo!? Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! http://platinum.yahoo.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]