MySQL错误:BLOB、TEXT、GEOMETRY或JSON列不能具有默认值。

13

我的VPS是Linux Ubuntu操作系统,服务器类型为MySQL,版本为5.7.33 ubuntu0.18.04.1 - (Ubuntu),使用Apache/2.4.29 (Ubuntu)作为Web服务器,数据库客户端版本为libmysql - mysqlnd 5.0.12-dev - 20150407,PHP版本为7.2.24。

我尝试在我的数据库中添加一列,但是出现了错误。在Windows XAMPP上尝试时没有任何问题。

ALTER TABLE users ADD COLUMN house LONGTEXT NOT NULL DEFAULT '{"owns":false,"furniture":[],"houseId":0}';

错误

SQL query:


ALTER TABLE users ADD COLUMN house LONGTEXT NOT NULL DEFAULT '{"owns":false,"furniture":[],"houseId":0}'
MySQL said: Documentation

#1101 - BLOB, TEXT, GEOMETRY or JSON column 'house' can't have a default value
2个回答

21
我猜你本地的 XAMPP 开发服务器正在运行 MySQL 8.0.13 或更高版本,或者是 MariaDB 10.2.1 或更高版本。在此之前的版本中,MYSQL 不允许 JSON 列使用除 NULL 以外的默认值。在 MariaDB 中,JSON 是 LONGTEXT 的别名,同样 (从版本 10.2.1 开始) 允许使用默认值。 可能你的开发环境允许使用默认值,而生产环境却不允许。你可以选择升级你的生产系统,或者不使用该功能。

-3

移除默认值:

ALTER TABLE users ADD COLUMN house LONGTEXT NOT NULL;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接