禁用严格模式后无法执行 SQL 文件事件

Can't Execute SQL File Event After Disabling Strict Mode

我正在使用 Ubuntu 18.04 和 Mysql,我正试图删除这个 SQL 文件:

CREATE TABLE IF NOT EXISTS `ammunition` 
(
    `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `owner` text DEFAULT NULL,
    `original_owner` text NOT NULL,
    `hash` text NOT NULL,
    `weapon_id` char(60) NOT NULL,
    `count` int(11) NOT NULL DEFAULT 0,
    `attach` text NOT NULL DEFAULT '[]',
    PRIMARY KEY (`id`),
    UNIQUE KEY `weapon_id` (`weapon_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

我不断收到此错误:

SQL ERROR (1101): BLOB, TEXT, GEOMETRY or JSON column attach can't have a default value

我试过解决它,但我能找到的唯一建议是禁用严格模式。

我永久禁用了它:

[mysqld]
sql_mode=""

然后重新启动 mysql 服务。

不重启的临时方式:

set global sql_mode='';

但是,我仍然收到错误消息。我做错了什么?

当您阅读错误消息时,您会看到 TEXT..column attach can't have a default value

要更正此问题,请不要在此处放置默认值。

如果您确实需要默认值,请使用 VARCHAR 列。

禁用sql严格模式是最糟糕的事情。以后会给你惹麻烦的。