在 phpMyAdmin 中导入 mysql 转储时收到此警告:
Warning: #1681 Integer display width is deprecated and will be removed in a future release.
我在https://dev.mysql.com/worklog/task/?id=13127上找到了这个
Deprecate the ZEROFILL attribute for numeric data types and the display width attribute for integer types.
但我真的不明白这是什么意思。有人可以解释产生此警告的问题是什么,以及如何解决它。
我花了几个小时来追踪这个bug.给出以下SQL:
DROP DATABASE IF EXISTS db;
CREATE DATABASE db;
CREATE TABLE db.tbl (t1 TIMESTAMP) ENGINE=INNODB;
SHOW CREATE TABLE db.tbl;
Run Code Online (Sandbox Code Playgroud)
最后一行告诉我:
'CREATE TABLE `tbl` (
`t1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1'
Run Code Online (Sandbox Code Playgroud)
它究竟NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP来自哪里?我没有写任何这些,而且我非常不想要任何这些,而且我有点迷失,因为MySQL会做出这样的假设.
我是否打开/关闭了一些疯狂的模糊配置选项?这是默认行为吗?这是一个错误吗?无论如何,我如何让MySQL表现得很好?