Mysql 错误 BLOB、TEXT、GEOMETRY 或 JSON 列不能有默认值 [英] Mysql error BLOB, TEXT, GEOMETRY or JSON colum cant have default value

查看:621
本文介绍了Mysql 错误 BLOB、TEXT、GEOMETRY 或 JSON 列不能有默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 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 is Server type: MySQL Server 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 error I 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 列不能有默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆