mysql - 列“名称”不能为空
问题描述
我已经阅读了很多不同的帖子,试图弄清楚为什么我的代码不起作用,但这里的目标是当列 'mark' 低于 69 时将列 'name' 的值设置为 null。我的代码是:
CREATE PROCEDURE gradesReport()
BEGIN
SELECT name FROM students WHERE mark > 69;
UPDATE students SET name = NULL WHERE mark < 69;
END
第一条语句工作正常,但随后我收到列名不能为空的错误。
解决方案
可能是该列name
被声明为非空
您应该首先将其更改为NOT NULL
Column
ALTER TABLE students
CHANGE `name` varchar(255) NULL;
推荐阅读
- rust - 多个可执行文件使用私有模块的正确位置
- php - 这种使用单选按钮的表单对 SQL 注入安全吗?
- react-native - React Native 未处理的承诺拒绝网络错误
- javascript - 如何使用循环和链式下拉菜单在 select2 中添加选项?
- php - 致命错误:未捕获错误:调用 F:\WebServer\htdocs\Module15\index.php:14 中未定义的方法 PHPMailer::setForm() 堆栈跟踪:#0 {main} 抛出
- objective-c - AudioQueue 切换应用后无法播放音频
- python - 在 requests.post 上设置最大重试次数
- maven - 在 pom.xml 中用于 maven 配置我无法理解 $
- apache-kafka - 如何更新 Kafka/Kafka 流中的数据?
- python - 如何在 python 中解码 \xe2\x80\xa6?