列“名称”不能为空

时间:2018-08-09 01:48:04

标签: mysql sql

我读了很多不同的文章,试图弄清楚为什么我的代码不起作用,但是这里的目标是在“标记”列低于69时将“名称”列的值设置为null。是:

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

第一个语句工作正常,但随后出现错误,即列名不能为空。

2 个答案:

答案 0 :(得分:1)

可能name列被声明为非空

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

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

答案 1 :(得分:0)

这是使列在MySQL中可为空的另一种方法:

ALTER TABLE students MODIFY name VARCHAR(255);

在MySQL中,列默认为空,因此我们实际上不需要在alter语句中指定NULL