我有以下表的 Sequelize 定义:

AcademyModule = sequelize.define('academy_module', {
        academy_id: DataTypes.INTEGER,
        module_id: DataTypes.INTEGER,
        module_module_type_id: DataTypes.INTEGER,
        sort_number: DataTypes.INTEGER,
        requirements_id: DataTypes.INTEGER
    }, {
        freezeTableName: true
});
如您所见,此表中没有 id 列。但是,当我尝试插入它时,它仍然会尝试以下 sql:
 INSERT INTO `academy_module` (`id`,`academy_id`,`module_id`,`sort_number`) VALUES (DEFAULT,'3',5,1);
如何禁用它显然具有的 id 功能?

最佳答案

如果您没有定义 primaryKey,那么 sequelize 默认使用 id
如果你想设置你自己的,只需在你的列上使用 primaryKey: true

AcademyModule = sequelize.define('academy_module', {
    academy_id: {
        type: DataTypes.INTEGER,
        primaryKey: true
    },
    module_id: DataTypes.INTEGER,
    module_module_type_id: DataTypes.INTEGER,
    sort_number: DataTypes.INTEGER,
    requirements_id: DataTypes.INTEGER
}, {
    freezeTableName: true
});

关于javascript - 没有列 'id' 的 Sequelize 表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29233896/

10-09 01:00