>Description:

        Given a table that has a timestamp field which is either the primary key or
        one field in a multi-column primary key, the value in this field is
        updated to the current time any time an SQL UPDATE is done, even
        when the timestamp field is not intended to be updated.


>How-To-Repeat:

mysql> CREATE TABLE foo(field1 TIMESTAMP PRIMARY KEY, field2 INT);
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO foo VALUES(now(), 10);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM foo;
+----------------+--------+
| field1         | field2 |
+----------------+--------+
| 20020522105353 |     10 |
+----------------+--------+
1 row in set (0.00 sec)

mysql> UPDATE foo SET field2=11;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM foo;
+----------------+--------+
| field1         | field2 |
+----------------+--------+
| 20020522105405 |     11 |
+----------------+--------+
1 row in set (0.00 sec)

 -- NOTICE that the time in field1 changed after the update.  This is wrong.

>Fix:
        A workaround is to set the timestamp field to itself on an update.
        ex: "UPDATE foo SET field1=field1, field2=11"

>Submitter-Id:  
>Originator:    Jeff Messner
>Organization:
 
>MySQL support: none
>Synopsis:      timestamp primary key's value improperly changing on sql update
>Severity:      serious
>Priority:      medium
>Category:      mysql
>Class:         sw-bug
>Release:       mysql-3.23.49a (Official MySQL Binary)
>Server: /usr/local/mysql/bin/mysqladmin  Ver 8.23 Distrib 3.23.49a, for pc-linux-gnu 
>on i686
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.49a
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 29 days 45 min 32 sec

Threads: 1  Questions: 2658  Slow queries: 0  Opens: 28  Flush tables: 1  Open tables: 
18 Queries per second avg: 0.001
>Environment:
        
System: Linux pc-00183 2.4.7-10 #1 Thu Sep 6 17:21:28 EDT 2001 i586 unknown
Architecture: i586

Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc /usr/bin/cc
GCC: Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
Compilation info: CC='gcc'  CFLAGS='-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch 
-Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec 
-Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -mcpu=pentiumpro 
-O3 -fno-omit-frame-pointer'  CXX='gcc'  CXXFLAGS='-Wimplicit -Wreturn-type 
-Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat 
-Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings 
-Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy 
-Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -mcpu=pentiumpro -O3 
-fno-omit-frame-pointer'  LDFLAGS=''
LIBC: 
lrwxrwxrwx    1 root     root           13 Mar 11 12:11 /lib/libc.so.6 -> libc-2.2.4.so
-rwxr-xr-x    1 root     root      5716491 Sep  4  2001 /lib/libc-2.2.4.so
-rw-r--r--    1 root     root     27304836 Sep  4  2001 /usr/lib/libc.a
-rw-r--r--    1 root     root          178 Sep  4  2001 /usr/lib/libc.so
Configure command: ./configure --prefix=/usr/local/mysql --enable-assembler 
--with-extra-charsets=complex --enable-thread-safe-client 
--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static 
--with-other-libc=/usr/local/mysql-glibc '--with-comment=Official MySQL Binary' 
--prefix=/usr/local/mysql --with-extra-charset=complex --enable-thread-safe-client 
--enable-local-infile 'CFLAGS=-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch 
-Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec 
-Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -mcpu=pentiumpro 
-O3 -fno-omit-frame-pointer' 'CXXFLAGS=-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch 
-Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec 
-Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual 
-Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor 
-felide-constructors -fno-exceptions -fno-rtti -mcpu=pentiumpr!
o -O3 -fno-omit-frame-pointer' CXX=gcc


---------------------------------------------------------------------
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