End of Product Lifecycle. Active development and support for MySQL Database Server versions 3.23, 4.0, and 4.1 has ended. For details, see http://www.mysql.com/about/legal/lifecycle/#calendar. Please consider upgrading to a recent version. Further updates to the content of this manual will be minimal. All formats of this manual will continue to be available until 31 Dec 2010.
Functionality added or changed:
TIMESTAMP is now returned as a
string of type
'YYYY-MM-DD HH:MM:SS' and
different timestamp lengths are not supported.
This change was necessary for SQL standards compliance. In a future version, a further change will be made (backward compatible with this change), allowing the timestamp length to indicate the desired number of digits of fractions of a second.
Replication now works with
and user variables
Allow index type to be specified explicitly for some storage
USING type_name syntax in index
in expressions; it produces the column's default value.
Added database and real table name (in case of alias) to the
Unicode (UTF8) support.
Allow one to change mode for
ANSI_QUOTES on the fly.
Faster embedded server (new internal communication protocol).
One can specify many temporary directories to be used in a
round-robin fashion with:
New faster client/server protocol that supports prepared statements, bound parameters, and bound result columns, binary transfer of data, warnings.
Aliases are now forced in derived tables, as per standard SQL.
libmysqlclient did not always fetch column
default values correctly.
Support for GIS (Geometrical data). See Chapter 16, Spatial Extensions.
mysql command-line client attempted to
interpret quotes within comments.
record_in_range() method to
MERGE tables to be able to choose the correct
index when there are many to choose from.
function returns the variance of
CREATE TABLE foo (a INT not null primary
PRIMARY word is now
CHAR BYTE is an alias for the
CHAR BINARY data type.
Added support for
SHOW [COUNT(*)] WARNINGS shows warnings from
the last command.
integer MOD integer and
integer DIV integer.
is now a reserved word.
CREATE TABLE foo (a TINYINT NOT NULL) SELECT b+1 AS a FROM bar;
Multi-line queries: You can now issue several queries at once and then read the results in one go.
CONVERT(... USING ...) syntax
for converting string values between character sets.
old-password command to
mysqladmin for changing password but storing
it using the old password-hashing format.
CREATE TABLE the attribute
SERIAL is now an alias for
UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
New more secure client authentication based on 45-byte passwords
SELECT * from t1 where t1.a=(SELECT t2.b
FALSE added as
alias for 1 and 0, respectively.
checking is now a bit stricter to support the ability to
automatically distinguish between date, datetime, and time with
microseconds. For example, dates of type
HHMMDD are no longer supported; you must either have
separators between each
part or not at all.
REPAIR TABLE of
MyISAM tables now uses less temporary disk
space when sorting char columns.
SELECT a.col1, b.col2 FROM (SELECT MAX(col1) AS col1 FROM root_table) a, other_table b WHERE a.col1=b.col1;
DROP TEMPORARY TABLE now drops only temporary
tables and doesn't end transactions.
SELECT .. LIMIT 0 did not return the proper
row count for
One can create a table from the existing table using
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
. The table can be
either normal or temporary.
One can add a comment per column in
SERIAL DEFAULT VALUE added as an alias for
determining the connection identifier of the client that holds a
given advisory lock.
SELECT ... FROM DUAL is an alias for
SELECT .... (To be compatible with some other
Server side help for all MySQL functions. One can now type
help week in the mysql
client and get help for the
Allow empty index lists to be specified for
IGNORE INDEX, and
SHOW FULL COLUMNS FROM
Character sets to be defined per column, table and database.
mysql_get_server_version() C API
CRC32() function to compute
cyclic redundancy check value.
BTREE index on
On Windows, we are now using shared memory to communicate
between server and client when they are running on the same
machine and you are connecting to