AUTO_INCREMENT columns are for positive integers.  You're trying to use
the column for an unintended use, so it's not surprising that there are
unintended consequences.


At 6:43 PM +0100 2/3/01, [EMAIL PROTECTED] wrote:
>Description:
>       If I use a table containing AUTO_INCREMENT field, and I have there
>       a 0 value, OPTIMIZE TABLE will fail.
>How-To-Repeat:
>       CREATE TABLE test(
>           ID DECIMAL(5,0) NOT NULL AUTO_INCREMENT,
>           text CHAR(20) NOT NULL,
>           PRIMARY KEY(ID)); // or INDEX(ID))
>
>       INSERT INTO test(text) VALUES('sample');
>       UPDATE test SET ID=0 WHERE ID=1;
>       INSERT INTO test(text) VALUES('sample-2');
>       SELECT * FROM test;
>
>       ID      text
>       -----------------
>       0       sample
>       1       sample-2
>
>       OPTIMIZE TABLE; //ERROR: 1062
>
>       If I used INDEX(ID) not PRIMARY KEY(ID), OPTIMIZE TABLE doesn't
>       fail, but data will be corrupted:
>
>       SELECT * FROM test;
>
>       ID      text
>       -----------------
>       1       sample          !!
>       1       sample-2        !!
>
>Fix:
>       I don't use optimize table, but PLEASE don't make inpossible to
>       insert 0 value to an AUTO_INCREMENT field!
>
>>Submitter-Id: <submitter ID>
>>Originator:   Nemeth Istvan
>Organization:  JAK
>  <organization of PR author (multiple lines)>
>MySQL support: none
>Synopsis:      problem with OPTIMIZE TABLE
>Severity:      non-critical
>Priority:      medium
>Category:      mysql
>Class:         sw-bug
>Release:       mysql-3.22.32 (Source distribution)
>Server: /usr/bin/mysqladmin  Ver 8.0 Distrib 3.22.32, for pc-linux-gnu on i586
>TCX Datakonsult AB, by Monty
>
>Server version         3.22.32-log
>Protocol version       10
>Connection             Localhost via UNIX socket
>UNIX socket            /var/run/mysqld/mysqld.sock
>Uptime:                        51 days 7 hours 33 min 43 sec
>
>Threads: 1  Questions: 16086  Slow queries: 11  Opens: 104  Flush 
>tables: 4  Open tables: 13
>Environment:
>       AMD K6-2 450, 192M RAM, 30G HDD, Debian Linux 2.2
>System: Linux linux 2.2.17 #3 Tue Dec 5 16:13:05 CET 2000 i586 unknown
>Architecture: i586
>
>Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gcc /usr/bin/cc
>GCC: Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
>gcc version 2.95.2 20000220 (Debian GNU/Linux)
>Compilation info: CC='gcc'  CFLAGS='-O2 -fomit-frame-pointer' 
>CXX='g++'  CXXFLAGS='-O2 -fomit-frame-pointer -felide-constructors 
>-fno-exceptions -fno-rtti'  LDFLAGS=''
>Configure command: ./configure  --enable-shared --without-readline 
>--enable-assembler --with-mysqld-user=mysql 
>--with-unix-socket-path=/var/run/mysqld/mysqld.sock --prefix=/usr 
>--exec-prefix=/usr --libexecdir=/usr/sbin --sysconfdir=/etc/mysql 
>--datadir=/usr/share --localstatedir=/var/lib/mysql 
>--infodir=/usr/share/info --includedir=/usr/include 
>--mandir=/usr/share/man
>Perl: This is perl, version 5.005_03 built for i386-linux
>
>---------------------------------------------------------------------
>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


-- 
Paul DuBois, [EMAIL PROTECTED]

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