mysql - 字段“SomeField”没有默认值
问题描述
我正在从 Postman 向 mySQL 数据库发送一些详细信息,它可以识别它,但我收到此错误:
code: 'ER_NO_DEFAULT_FOR_FIELD',
errno: 1364,
sqlMessage: 'Field \'creditcard\' doesn\'t have a default value',
我已将 mySQL 模式设置为传统模式并删除了严格模式,重新连接到数据库重新启动服务器,它再次抛出相同的错误。
这是代码的一部分:
try {
const createNewUser = 'INSERT INTO users (username, email, phonenumber, password, salt, created_at) VALUES (?,?,?,?,?,?)';
con.query(createNewUser, [username, email, phonenumber, passHash, salt, createAt], (err, results) => {
if (err) {
console.error(err);
}
console.log(results);
});
res.status(201).send({ success: true, message: 'New user was successfully created', data: {username, email, phonenumber, password} });
} catch (error) {
res.status(500).send({ success: false, message: 'Server error' });
}
await next;
}
const userCreateModel = `
CREATE TABLE IF NOT EXISTS users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(45) NOT NULL,
email VARCHAR(45) NOT NULL,
phonenumber VARCHAR(45) NOT NULL,
password VARCHAR(255) NOT NULL,
creditcard INT(11) NOT NULL,
salt VARCHAR(255),
created_at DATE,
update_at DATE,
deleted_at DATE,
lastSignIn DATE,
PRIMARY key (id)
)
`;
提前谢谢你,如果有人知道我做错了什么,我会很高兴。
解决方案
creditcard INT(11) NOT NULL,
在创建表时您提到它不应该接受空值并且在插入时您错过了提供信用卡信息
因此,要么更改表以接受空值,要么在插入时提供信用卡值
推荐阅读
- reactjs - AWS CloudFront 如何更新现有的 S3 文件?
- json - 如何以更简单的方式即时创建 JSON?
- css - 垂直对齐 ag-grid 单元格内的文本
- php - 三元运算符和 PHP 包括
- linux - 如何通过 grub2 以与发行版无关的方式从作为根设备加载的 cpio 存档中获取 initrd?
- javascript - 如何确定是否已声明 Javascript 类?
- maven - Maven:如何在分叉的 JVM 中执行依赖项?
- angular - 从 HTTP 检索的建模数据以生成动态 Material 2 表
- javascript - 使用 Control.Draw 工具在被拖动后检测标记的原始位置和修改位置
- c - 为什么 free() 放置随机数据块而不是删除节点?