Changes in MySQL 8.0.17 (2019-07-22, General Availability)
-
FLOAT(
andM
,D
)DOUBLE(
syntax to specify the number of digits for columns of typeM
,D
)FLOAT
andDOUBLE
(and any synonyms) is a nonstandard MySQL extension. This syntax is deprecated and support for it will be removed in a future MySQL version. (Bug #25328973, Bug #84363) -
For string data types, the
BINARY
attribute is a nonstandard MySQL extension that is shorthand for specifying the binary (_bin
) collation of the column character set (or of the table default character set if no column character set is specified). In MySQL 8.0, this nonstandard use ofBINARY
is ambiguous because theutf8mb4
character set has multiple_bin
collations, so theBINARY
attribute is deprecated and support for it will be removed in a future MySQL version. Applications should be adjusted to use an explicit_bin
collation instead.The use of
BINARY
to specify a data type or character set remains unchanged. -
The nonstandard C-style
&&
,||
, and!
operators that are synonyms for the standard SQLAND
,OR
, andNOT
operators, respectively, are deprecated and support for them will be removed in a future MySQL version. Applications that use the nonstandard operators should be adjusted to use the standard operators.NoteUse of
||
is deprecated unless thePIPES_AS_CONCAT
SQL mode is enabled. In that case,||
signifies the SQL-standard string concatenation operator). -
The
ZEROFILL
attribute is deprecated for numeric data types, as is the display width attribute for integer data types. Support forZEROFILL
and display widths for integer data types will be removed in a future MySQL version. Consider using an alternative means of producing the effect of these attributes. For example, applications could use theLPAD()
function to zero-pad numbers up to the desired width, or they could store the formatted numbers inCHAR
columns. -
The
UNSIGNED
attribute is deprecated for columns of typeFLOAT
,DOUBLE
, andDECIMAL
(and any synonyms) and support for it will be removed in a future MySQL version. Consider using a simpleCHECK
constraint instead for such columns. -
AUTO_INCREMENT
support is deprecated for columns of typeFLOAT
andDOUBLE
(and any synonyms) and will be removed in a future MySQL version. Consider removing theAUTO_INCREMENT
attribute from such columns, or convert them to an integer type. -
The
SQL_CALC_FOUND_ROWS
query modifier and accompanyingFOUND_ROWS()
function are now deprecated and will be removed in a future MySQL version. As a replacement, considering executing your query withLIMIT
, and then a second query withCOUNT(*)
and withoutLIMIT
to determine whether there are additional rows. For example, instead of these queries:SELECT SQL_CALC_FOUND_ROWS * FROM
tbl_name
WHERE id > 100 LIMIT 10; SELECT FOUND_ROWS();Use these queries instead:
SELECT * FROM
tbl_name
WHERE id > 100 LIMIT 10; SELECT COUNT(*) WHERE id > 100;COUNT(*)
is subject to certain optimizations.SQL_CALC_FOUND_ROWS
causes some optimizations to be disabled.