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.
A new storage engine library (MyISAM
) with
a lot of new features. See
Section 13.1, “The MyISAM
Storage Engine”.
You can create in-memory HEAP
tables which
are extremely fast for lookups.
Support for big files (63-bit) on OSs that support big files.
New function
LOAD_FILE(filename)
to get the
contents of a file as a string value.
New <=>
operator that acts as
=
but returns TRUE if both arguments are
NULL
. This is useful for comparing changes
between tables.
Added the ODBC 3.0 EXTRACT(interval FROM
datetime)
function.
Columns defined as
FLOAT(
are not
rounded on storage and may be in scientific notation (1.0
E+10) when retrieved.
X
)
REPLACE
is now faster than
before.
Changed LIKE
character comparison
to behave as =
;
This means that 'e' LIKE 'é'
is now true.
(If the line doesn't display correctly, the latter 'e' is a
French 'e' with an acute accent above.)
SHOW TABLE STATUS
returns a lot
of information about the tables.
Added LIKE
to the
SHOW STATUS
command.
Added Privileges
column to
SHOW COLUMNS
.
Added Packed
and Comment
columns to SHOW INDEX
.
Added comments to tables (with CREATE TABLE ...
COMMENT '
).
xxx
'
Added UNIQUE
, as in CREATE TABLE
tbl_name
(col INT NOT NULL
UNIQUE)
New create syntax: CREATE TABLE
tbl_name
SELECT ...
New create syntax: CREATE TABLE IF NOT EXISTS
...
Allow creation of CHAR(0)
columns.
DATE_FORMAT()
now requires
“%
” before any format
character.
DELAYED
is now a reserved word (sorry about
that :( ).
An example procedure is added: analyse
,
file: sql_analyse.c
. This describes the
data in your query. Try the following:
SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements
,[max_memory
]])
This procedure is extremely useful when you want to check the data in your table!
BINARY
cast to force a string to be
compared in case-sensitive fashion.
Added --skip-show-database
option to mysqld.
Check whether a row has changed in an
UPDATE
now also works with
BLOB
/TEXT
columns.
Added the INNER
join syntax. Note that this
change makes INNER
a reserved word!
Added support for netmasks to the host name in the MySQL grant
tables. You can specify a netmask using the
IP/NETMASK
syntax.
If you compare a NOT NULL DATE/DATETIME
column with IS NULL
, this is
changed to a compare against 0
to satisfy
some ODBC applications. (By <shreeve@uci.edu>
.)
NULL IN (...)
now returns
NULL
instead of 0
. This
ensures that null_column NOT IN (...)
doesn't match NULL
values.
Fix storage of floating-point values in
TIME
columns.
Changed parsing of TIME
strings
to be more strict. Now the fractional second part is detected
(and currently skipped). The following formats are supported:
[[DAYS] [H]H:]MM:]SS[.fraction]
[[[[[H]H]H]H]MM]SS[.fraction]
Detect (and ignore) fractional second part from
DATETIME
.
Added the LOW_PRIORITY
attribute to
LOAD DATA
INFILE
.
The default index name now uses the same case as the column name on which the index name is based.
Changed default number of connections to 100.
Use bigger buffers when using
LOAD DATA
INFILE
.
DECIMAL(x,y)
now works according to
standard SQL.
Added aggregate user-defined functions. Thanks to Andreas F.
Bobak (<bobak@relog.ch>
) for this!
LAST_INSERT_ID()
is now updated
for INSERT INTO
... SELECT
.
Some small changes to the join table optimizer to make some joins faster.
SELECT
DISTINCT
is much faster; it uses the new
UNIQUE
functionality in
MyISAM
. One difference compared to MySQL
3.22 is that the output of DISTINCT
is no
longer sorted.
All C client API macros are now functions to make shared
libraries more reliable. Because of this, you can no longer
call mysql_num_fields()
on a
MYSQL
object, you must use
mysql_field_count()
instead.
Added use of LIBWRAP
; patch by Henning P.
Schmiedehausen.
Do not allow AUTO_INCREMENT
for other than
numerical columns.
Using AUTO_INCREMENT
now automatically
makes the column NOT NULL
.
Show NULL
as the default value for
AUTO_INCREMENT
columns.
Added SQL_BIG_RESULT
;
SQL_SMALL_RESULT
is now default.
Added a shared library RPM. This enhancement was contributed
by David Fox (<dsfox@cogsci.ucsd.edu>
).
Added --enable-large-files
and
--disable-large-files
options to
configure. See
configure.in
for some systems where this
is automatically turned off because of broken implementations.
Upgraded readline
to 4.0.
New CREATE TABLE
options:
PACK_KEYS
and CHECKSUM
.
Added the --default-table-type
option to mysqld.
User Comments
Add your own comment.