我正在创建一个SQL脚本并使用navicat运行它,而当我删除DEFAULT 32时,它工作得很好.为什么?谢谢.

My Dev Env: MySQL 5.7 installed on win11.

CREATE TABLE `student` (
   `student_id` INT NOT NULL DEFAULT 12,
   `studeng_name` VARCHAR(255) NOT NULL DEFAULT 4,
   `password` CHAR NOT NULL DEFAULT 32,
   PRIMARY KEY (`student_id`)
)
> 1067 - Invalid default value for 'password'
> Time: 0.001s

推荐答案

CHAR等于CHAR(1).当32被转换为字符串'32'时,它不适合1个字符的字符串.

看起来您正在try 使用字符的ASCII代码指定缺省值.这不是数字转换为字符串的方式.从ASCII代码获取字符串需要调用CHAR()函数,但不能调用DEFAULT子句中的函数(除了像CURRENT_TIMESTAMP()这样的少数例外).

因此,您需要将缺省值编写为字符串.

CREATE TABLE `student` (
   `student_id` INT NOT NULL DEFAULT 12,
   `student_name` VARCHAR(255) NOT NULL DEFAULT '\d',
   `password` CHAR NOT NULL DEFAULT ' ',
   PRIMARY KEY (`student_id`)
)

Mysql相关问答推荐

在MySQL中查找具有公共值的列名

如何让Docker MySQL使用Unicode(utf-8)和初始化脚本?

我如何才能从MySQL过程中获取LARAVEL端的数据?

Python MySQL-无法从数据库中删除行

计算符合字段值只能包含一种事件类型这一事实的记录

为什么歌曲详细信息未显示在 Liked.handlebars 视图中?

MySQL 计数出现的百分比大于

将上传文件的存储路径放在一张表中的缺点是什么?

MySQL 8.0 可以在 Select 语句中返回 JSON 对象数组吗?

global max_connections 和 spring.hikari.maximumPoolSize 有什么区别?

MySQL如何将字符串列表与子查询进行比较

MySQL 8.0.30 正则表达式词匹配特殊字符

提取 MySQL 5.7 连续值的差异

如何从将分钟、天、月和年存储在不同列中的表中查询数据

MySQL如何通过外键ID Select 多行?

如何查看 rdsadmin 在 mysql 实例上的权限?

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

哪个更好 - 许多小桌子或一张大桌子?

在 MySQL 中的子查询上使用 GROUP_CONCAT

MySQL:切换 int 字段值的简单方法