gpt4 book ai didi

mysql - 我如何修复 SequelizeDatabaseError : Field 'id' doesn't have a default value?

转载 作者:行者123 更新时间:2023-11-29 15:50:39 69 4
gpt4 key购买 nike

我正在使用 MVC Node 表达 pug 和 Sequelize 作为 ORM 处理 Node 中的待办事项列表,而 View 部分是我用 pug 制作的,所以当我启动我的应用程序时工作正常,但是当我尝试创建一个新项目时,这个项目已插入数据库,出现错误 1364

原则上,这是一个添加到我的投资组合中的个人项目,我看到通过停用 STRICT SQL 模式有一个可能的解决方案,但我想知道是否还有其他解决方案

model code Proyect.js

const Sequelize = require('sequelize');
//conect db
const db = require('../config/db');

const Proyects = db.define('proyects', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
name: Sequelize.STRING,
url: Sequelize.STRING
});
module.exports = Proyects;

我希望使用此模型在我的表中创建一个寄存器,但是当我尝试实际错误时,它是下一个

Executing (default): CREATE TABLE IF NOT EXISTS `proyects` (`id` INTEGER NOT NULL auto_increment , `name` VARCHAR(255), `url` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `proyects`
conected to db
Executing (default): INSERT INTO `proyects` (`id`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?);
{ SequelizeDatabaseError: Field 'id' doesn't have a default value
code: 'ER_NO_DEFAULT_FOR_FIELD',
errno: 1364,
sqlState: 'HY000',
sqlMessage: 'Field \'id\' doesn\'t have a default value',
sql:
'INSERT INTO `proyects` (`id`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?);' },

最佳答案

据我了解,这是 mysql 数据库的问题。表中的“id”字段被标记为非空,并且在插入值时,您不会为“id”字段提供任何值。

创建表时,您可以在“id”字段中允许空值或提供默认值(可以使用 defaultValue 标志)来避免遇到此错误。否则你已经有了替代解决方案。

关于mysql - 我如何修复 SequelizeDatabaseError : Field 'id' doesn't have a default value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56777946/

69 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com