Sequelize不会从数据库获取表

时间:2018-08-21 06:02:17

标签: javascript sql-server node.js sequelize.js

我正在设置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'));
});

现在正常运行。即获得第一批股票将很容易;但由于代码中的某些原因,它会累赘在查询中引用“股票”:

enter image description here

我不希望添加一个新的主要ID,该ID已经设置为StockID(我想我必须将自己设置为type,但此刻我只想获取一个现有数据库(Stock)并只是查询并更新某些行。

1 个答案:

答案 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
  }
});

READ MORE