Bug #42270 | With SQL server mode NO_AUTO_VALUE_ON_ZERO, DEFAULT is treated as 0 | ||
---|---|---|---|
Submitted: | 22 Jan 2009 13:52 | Modified: | 22 Jan 2009 14:30 |
Reporter: | Kristof Coomans | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: General | Severity: | S3 (Non-critical) |
Version: | 5.0, 5.1.30 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | DEFAULT, NO_AUTO_VALUE_ON_ZERO, server mode |
[22 Jan 2009 13:52]
Kristof Coomans
[22 Jan 2009 13:52]
Kristof Coomans
See http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html#sqlmode_no_auto_value_on_zero
[22 Jan 2009 14:30]
Valeriy Kravchuk
Verified just as described with 5.1.30 also: C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -uroot -proot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.30-enterprise-gpl-advanced-debug-log MySQL Enterprise Server - Advanced Edition Debug (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; Query OK, 0 rows affected (0.05 sec) mysql> CREATE TABLE ezurlalias_ml_incr ( -> id int(11) NOT NULL AUTO_INCREMENT, -> PRIMARY KEY ( id ) -> ) TYPE=InnoDB; Query OK, 0 rows affected, 1 warning (1.13 sec) mysql> INSERT INTO ezurlalias_ml_incr(id) VALUES(DEFAULT); Query OK, 1 row affected (0.09 sec) mysql> select * from ezurlalias_ml_incr; +----+ | id | +----+ | 0 | +----+ 1 row in set (0.09 sec) mysql> INSERT INTO ezurlalias_ml_incr(id) VALUES(DEFAULT); ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY' While the manual (http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html) clearly says: "For numeric types, the default is 0, with the exception that for integer or floating-point types declared with the AUTO_INCREMENT attribute, the default is the next value in the sequence."