BLOBvalues can't ``reliably'' be used in
max_sort_lengthバイト （デフォルト1024）だけが使用されます。 これは
-O max_sort_lengthオプションで変更可能です。 A workaround for most cases is to use a substring:
SELECT DISTINCT LEFT(blob,2048) FROM tbl_name.
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
DOUBLEprecision and the rest with
DOUBLEprecision. One should try to avoid using bigger unsigned long long values than 63 bits (9223372036854775807) for anything else than bit fields!
CHAR型ではこれは OK で、この特徴は ANSI SQL92 に従っていると見なされるでしょう。 MySQL のバグは、
SETフィールドは 255 までしか持てません。
safe_mysqldre-directs all messages from
mysqldlog. One problem with this is that if you execute
mysqladmin refreshto close and reopen the log,
stderrare still redirected to the old log. If you use
--logextensively, you should edit
safe_mysqldto 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
UPDATEstatement, 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+1will update
2instead of with
select * from temporary_table, temporary_table as t2;
rollbackdata) some things behaves a little different in MySQL than in other SQL servers: (This is just to ensure that MySQL never need to do a rollback for a SQL command). This may be a little akward at times as column values must be checked in the application, but this will actually give you a nice speed increase as it allows MySQL to do some optimizations that otherwice would be hard to do. If you set a colum to a wrong value, MySQL will instead of doing a rollback instead store the
best possible valuein the column.
NULLinto a column that doesn't take
MySQLwill store 0 or
''(empty string) in it instead. (This behavour can however be changed with the -DDONT_USE_DEFAULT_FIELDS compile option).
DATETIMEcolumns. (Like 2000-02-31 or 2000-02-00). If the date is totally wrong, MySQL will store the special 0000-00-00 date value in the column.
enumto an not supported value, it will be set to the error value 'empty string', with numeric value 0.
The following is known bugs in earlier versions of MySQL:
DROP TABLEon a table that is one among many tables that is locked with
UPDATEthat updated a key with a
WHEREon 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
For platform-specific bugs, see the sections about compiling and porting.
Go to the first, previous, next, last section, table of contents.