将默认值添加到每列MySQL严格模式

时间:2019-02-27 18:51:36

标签: mysql

我无法禁用MySQL严格模式,因此我需要为表的每一列添加默认值。

我正在尝试以下操作:

ALTER TABLE media
CHANGE upload_date upload_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
CHANGE title title VARCHAR(500) NULL DEFAULT '',
CHANGE slug slug VARCHAR(500) NULL DEFAULT '',
CHANGE meta_title meta_title VARCHAR(500) NULL DEFAULT '',
CHANGE meta_desc meta_desc VARCHAR(500) NULL DEFAULT '',
CHANGE meta_keys meta_keys VARCHAR(500) NULL DEFAULT '',
CHANGE filename filename VARCHAR(300) NULL DEFAULT '',
CHANGE filetype filetype VARCHAR(50) NULL DEFAULT ''

我收到错误 SQL错误(1366):不正确的字符串值:第1行的“元密钥”列的“ \ xD9 \ x81 \ xDB \ x8C \ xD9 \ x84 ...”

我该如何解决?

2 个答案:

答案 0 :(得分:0)

问题是,在启用严格模式之前,您必须更改列。否则,每当您执行INSERT / UPDATE或ALTER TABLE:(

答案 1 :(得分:0)

检查连接和客户端的characterset

 - mysql -uroot -p
 - \s

您必须确保客户端和连接字符集与Db完全相同。

Connection Characterset

如果不是,请使用以下命令重置连接和客户端字符集。

使用以下命令为客户端到服务器的连接设置正确的字符集和排序规则

- mysql -uroot -p
- SET NAMES 'charset_name
- /execute/alter/table/query