|
Go to the first, previous,
next, last
section, table of contents.
- You cannot build in another directory when using MIT-pthreads.
Since this requires changes to MIT-pthreads, we are not likely
to fix this.
BLOB values can't ``reliably'' be used in GROUP
BY or ORDER BY or DISTINCT . Only
the first max_sort_length bytes (default 1024) are
used when comparing BLOB bs in these cases. This can
be changed with the -O max_sort_length option to
mysqld . A workaround for most cases is to use a substring:
SELECT DISTINCT LEFT(blob,2048) FROM tbl_name .
- Calculation is done with
BIGINT or DOUBLE
(both are normally 64 bits long). It depends on the function which
precision one gets. The general rule is that bit functions are
done with BIGINT precision, IF , and
ELT() with BIGINT or DOUBLE
precision and the rest with DOUBLE precision. One
should try to avoid using bigger unsigned long long values than
63 bits (9223372036854775807) for anything else than bit fields!
- All string columns, except
BLOB and TEXT
columns, automatically have all trailing spaces removed when retrieved.
For CHAR types this is okay, and may be regarded
as a feature according to ANSI SQL92. The bug is that in MySQL,
VARCHAR columns are treated the same way.
- You can only have up to 255
ENUM and SET
columns in one table.
safe_mysqld re-directs all messages from mysqld
to the mysqld log. One problem with this is that
if you execute mysqladmin refresh to close and reopen
the log, stdout and stderr are still
redirected to the old log. If you use --log extensively,
you should edit safe_mysqld to log to `'hostname'.err'
instead of `'hostname'.log' so you can easily reclaim
the space for the old log by deleting the old one and executing
mysqladmin refresh .
- In the
UPDATE statement, columns are updated from
left to right. If you refer to a updated column, you will get
the updated value instead of the original value. For example:
mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1
will update KEY with 2 instead of
with 1 .
- You can't use temporary tables more than once in the same query.
select * from temporary_table, temporary_table as t2;
The following is known bugs in earlier versions of MySQL:
- Before MySQL 3.23.2 an
UPDATE
that updated a key with a WHERE on the same key may
have failed because the key was used to search for records and
the same row may have been found multiple times:
UPDATE tbl_name SET KEY=KEY+1 WHERE KEY > 100;
A workaround is to use:
mysql> UPDATE tbl_name SET KEY=KEY+1 WHERE KEY+0 > 100;
This will work because MySQL will not use
index on expressions in the WHERE clause.
- Before MySQL 3.23 all numeric types where treated
as fixed-point fields. That means you had to specify how many
decimals a floating-point field shall have. All results was returned
with the correct number of decimals.
For platform-specific bugs, see the sections about compiling and
porting.
Go to the first, previous,
next, last
section, table of contents.
|