我正在设置Sequelize,以使其更易于操作MSSQL数据库。
我试图定义一个名为“ Stock”的表,但是当我尝试查询该表时,它会做各种奇怪的事情。 这是我定义它的代码:
const Stock = sequelize.define('Stock', {
StockID: {
type: Sequelize.INTEGER
},
TradeName: {
type: Sequelize.STRING
},
ProductGroupID: {
type: Sequelize.INTEGER
},
ProductClassID: {
type: Sequelize.INTEGER
},
ClubID: {
type: Sequelize.INTEGER
},
NettIntoStore: {
type: Sequelize.STRING
},
NegotiatedCost: {
type: Sequelize.STRING
},
MaximumSOH: {
type: Sequelize.INTEGER
},
OrderCategory: {
type: Sequelize.SMALLINT
},
LastCountDate: {
type: Sequelize.DATE
},
RobotStoreInFridge: {
type: Sequelize.SMALLINT
},
NoShelfLabels: {
type: Sequelize.INTEGER
},
SOLayby: {
type: Sequelize.REAL
},
});
// force: true will drop the table if it already exists
Stock.findOne().then(stock => {
console.log(stock.get('TradeName'));
});
现在正常运行。即获得第一批股票将很容易;但由于代码中的某些原因,它会累赘在查询中引用“股票”:
我不希望添加一个新的主要ID,该ID已经设置为StockID(我想我必须将自己设置为type,但此刻我只想获取一个现有数据库(Stock)并只是查询并更新某些行。
答案 0 :(得分:1)
默认情况下,Sequelize将假定您的表具有id主键属性。
要定义自己的主键:
sequelize.define('collection', {
uid: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true // Automatically gets converted to SERIAL for postgres
}
});
sequelize.define('collection', {
uuid: {
type: Sequelize.UUID,
primaryKey: true
}
});