首页 > 解决方案 > 列“名称”不能为空

问题描述

我已经阅读了很多不同的帖子,试图弄清楚为什么我的代码不起作用,但这里的目标是当列 'mark' 低于 69 时将列 'name' 的值设置为 null。我的代码是:

CREATE PROCEDURE gradesReport()
BEGIN
  SELECT name FROM students WHERE mark > 69;
  UPDATE students SET name = NULL WHERE mark < 69;
END

第一条语句工作正常,但随后我收到列名不能为空的错误。

标签: mysqlsql

解决方案


可能是该列name被声明为非空

您应该首先将其更改为NOT NULLColumn

ALTER TABLE students 
CHANGE `name` varchar(255) NULL;

推荐阅读