问题描述
我的 vps linux ubuntu 是服务器类型:MySQL服务器版本:5.7.33 ubuntu0.18.04.1 - (Ubuntu)Apache/2.4.29 (Ubuntu)数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407 -PHP 版本:7.2.24-
My vps linux ubuntu isServer type: MySQLServer version: 5.7.33 ubuntu0.18.04.1 - (Ubuntu)Apache/2.4.29 (Ubuntu)Database client version: libmysql - mysqlnd 5.0.12-dev - 20150407 -PHP version: 7.2.24-
试图在我的数据库中添加一列但我收到错误我在 windows xampp 上试过它的工作没有任何问题
Trying to add a column in my database but im getting errorI tried that on windows xampp its work without any problem
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
推荐答案
我猜您本地的 XAMPP 开发服务器正在运行 MySQL 8.0.13 或更高版本 — 或 MariaDB 10.2.1 或更高版本.在该版本之前,MYSQL 不允许 JSON 列使用除 NULL 以外的 DEFAULT 值.在 MariaDB 中,JSON 是 LONGTEXT 的别名,同样(从版本 10.2.1 开始)允许使用 DEFAULT 值.
I'm going to guess that your local XAMPP development server is running MySQL 8.0.13 or newer — or MariaDB 10.2.1 or newer. Prior to that version, MYSQL did not allow a DEFAULT value other than NULL for JSON columns. In MariaDB, JSON is an alias for LONGTEXT, which likewise (starting with version 10.2.1) allows DEFAULT values.
可能您的开发环境允许默认设置,而生产环境不允许.您可以升级生产系统,也可以不使用该功能.
Probably your development environment allows the defaults and the production environment doesn't. You can either upgrade your production system or not use that feature.
这篇关于Mysql 错误 BLOB、TEXT、GEOMETRY 或 JSON 列不能有默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!