Как я могу исправить SequelizeDatabaseError: Поле 'id' не имеет значения по умолчанию? - PullRequest
0 голосов
/ 26 июня 2019

я работаю над списком дел в узле, используя MVC для узла pug и секвелирования как ORM, и часть представлений, которые я сделал с помощью 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,?,?);' },

1 Ответ

0 голосов
/ 26 июня 2019

Насколько я понимаю, это проблема с базой данных MySQL.Поле 'id' в вашей таблице помечено как ненулевое, и при вставке значений вы не предоставляете никакого значения для поля 'id'.

Вы можете избежать этой ошибки, либо допустив нулевые значения в 'id 'поле или предоставление значения по умолчанию (Вы можете использовать флаг defaultValue) при создании таблицы.В противном случае у вас уже есть альтернативное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...