Журнал консоли:
Executing (default): INSERT INTO 'testtables' ('id','forgot_code','customer_id') VALUES (DEFAULT,610,199)
Как я могу остановить sequelize от отправки значения DEFAULT
в мой id
столбца? Как я могу остановить sequelize от вставки в мой первичный ключ, поскольку он уже включен автоматически?
Мой код:
var TestTable= sequelize.define('testtables', {
id:{
type:Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
forgot_code:Sequelize.INTEGER,
customer_id:Sequelize.INTEGER
},{
timestamps: false,
});
Вы должны удалить autoIncrement: true
из определения вашей модели. Теперь вставка без предоставления значения id
не будет выполнена. Например, нижеприведенный код не будет работать
const User = sequelize.define('user', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
// autoIncrement: true
},
username: Sequelize.STRING,
});
sequelize.sync({ force: true })
.then(() => User.create({
username: 'test123'
}).then((user) => {
console.log(user);
}));
Однако, если вы раскомментируете autoIncrement: true
, вставка будет проходить
NULL
даже если столбецNOT NULL
) и должен приводить к вставке следующего значения автоинкремента.