From: jon.stephens Date: February 23 2009 6:52pm Subject: svn commit - mysqldoc@docsrva: r13904 - trunk/refman-5.1 List-Archive: http://lists.mysql.com/commits/67249 Message-Id: <200902231852.n1NIqNQq028689@docsrva.mysql.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Author: jstephens Date: 2009-02-23 19:52:23 +0100 (Mon, 23 Feb 2009) New Revision: 13904 Log: Reverted previous commit; Paul already handled this issue. Modified: trunk/refman-5.1/installing-core.xml Modified: trunk/refman-5.1/installing-core.xml =================================================================== --- trunk/refman-5.1/installing-core.xml 2009-02-23 18:46:40 UTC (rev 13903) +++ trunk/refman-5.1/installing-core.xml 2009-02-23 18:52:23 UTC (rev 13904) Changed blocks: 1, Lines Added: 0, Lines Deleted: 109; 4117 bytes @@ -14286,115 +14286,6 @@ - Incompatible change: When - using the default SQL server mode, MySQL 5.0 and 5.1 - handle UPDATE statements - differently when the update tries to set one or more - NOT NULL columns to - NULL. MySQL 5.0 allows you to update - NOT NULL column values to the nearest - equivalent empty value (usually 0 or an - empty string); however, MySQL 5.1 rejects such statements. - - - - For example, suppose you create the following table on a - MySQL 5.0 server and insert a row into it as shown here: - - - -mysql> SELECT VERSION(); -+-----------+ -| VERSION() | -+-----------+ -| 5.0.79 | -+-----------+ -1 row in set (0.01 sec) - -mysq> CREATE TABLE t1 (c1 INT NOT NULL); -Query OK, 0 rows affected (0.04 sec) -mysql> INSERT INTO t1 VALUES (1); -Query OK, 1 row affected (0.00 sec) - - - - If you attempt to update a row to set a NOT - NULL column to NULL, MySQL - 5.0 allows the operation to proceed but sets the column - value to the nearest equivalent empty - value, albeit with a warning, as shown here: - - - -mysql> UPDATE t1 SET c1 = NULL WHERE c1 = 1; -Query OK, 1 row affected, 1 warning (0.00 sec) -Rows matched: 1 Changed: 1 Warnings: 1 - -mysql> SHOW WARNINGS; -+---------+------+----------------------------+ -| Level | Code | Message | -+---------+------+----------------------------+ -| Warning | 1048 | Column 'c1' cannot be null | -+---------+------+----------------------------+ -1 row in set (0.00 sec) - -mysql> SELECT * FROM t1; -+----+ -| c1 | -+----+ -| 0 | -+----+ -1 row in set (0.00 sec) - - - - MySQL 5.0 shows the same behavior for multi-column updates - as well. - - - - MySQL 5.1 does not allow such - updates; these fail with an error, as shown here: - - - -mysql> SELECT VERSION(); -+-----------+ -| version() | -+-----------+ -| 5.1.32 | -+-----------+ -1 row in set (0.00 sec) - -mysql> CREATE TABLE t1 (c1 INT NOT NULL); -Query OK, 0 rows affected (0.05 sec) - -mysql> INSERT INTO t1 VALUES (1); -Query OK, 1 row affected (0.00 sec) - -mysql> UPDATE t1 SET c1 = NULL WHERE c1 = 1; -ERROR 1048 (23000): Column 'c1' cannot be null -mysql> SELECT * FROM t1; -+----+ -| c1 | -+----+ -| 1 | -+----+ -1 row in set (0.00 sec) - - - - Applications that depend on the MySQL 5.0 behavior with - regard to NULL, NOT - NULL, and UPDATE - must be changed before migrating them to MySQL 5.1; there - is no way to reproduce the MySQL 5.0 behavior in MySQL - 5.1. - - - - - Some keywords are reserved in MySQL ¤t-series; that were not reserved in MySQL &previous-series;. See .