繁体   English   中英

查询没有表'id'的sequelize表

[英]Query sequelize table without column 'id'

我有以下型号

(迁移) transaction.js

    'use strict';
module.exports = {
  up: function(queryInterface, Sequelize) {
    return queryInterface.createTable('transactions', {
      date: {
        type: Sequelize.DATEONLY
      },
      transNo: {
        type: Sequelize.INTEGER,
         allowNull: false,
        autoIncrement: true,
        primaryKey: true,  
    },
      accNo: {
        type: Sequelize.INTEGER
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: function(queryInterface, Sequelize) {
    return queryInterface.dropTable('transactions');
  }
};

(模型) transaction.js

  'use strict';
const credit = require('./credit.js'); 
module.exports = function(sequelize, DataTypes) {
  var transaction = sequelize.define('transaction', {
    date: DataTypes.DATEONLY,
    transNo: DataTypes.INTEGER,
    accNo: DataTypes.INTEGER
  }, {
    classMethods: {
      associate: function(models) {
        // associations can be defined here
  transaction.hasOne(models.credit, {foreignKey: 'transNo'});
    }
    }
  });
  return transaction;
};

(模型) credit.js

    module.exports = function(sequelize, DataTypes) {
  var credit = sequelize.define('credit', {
    transNo: DataTypes.INTEGER,
    creNo: DataTypes.INTEGER
  }, {
    classMethods: {
      associate: function(models) {
        // associations can be defined here

      }
    }
  });
  return credit;
};

(迁移) credit.js

` module.exports = {
      up: function(queryInterface, Sequelize) {
        return queryInterface.createTable('credits', {
          transNo: {
            type: Sequelize.INTEGER
          },
          creNo: {
            type: Sequelize.INTEGER,
            autoIncrement: true,
            allowNull: false,
            primaryKey: true
          },
          createdAt: {
            allowNull: false,
            type: Sequelize.DATE
          },
          updatedAt: {
            allowNull: false,
            type: Sequelize.DATE
          }
        });
      },
      down: function(queryInterface, Sequelize) {
        return queryInterface.dropTable('credits');
      }
    };`

它仍然用id列查询

执行中(默认):SELECT transaction idtransaction datetransaction accNo ,.........(等等)。

如何禁止查询id列?

您只需要将另一列设置为主键,并且默认情况下不会生成id列。

 module.exports = function(sequelize, DataTypes) {
  var credit = sequelize.define('credit', {
    transNo: DataTypes.INTEGER,
    {
    creNo: DataTypes.INTEGER,
    primaryKey: true //define a primaryKey

    }
}, {
    classMethods: {
      associate: function(models) {
        // associations can be defined here
      }
    }
  });
  return credit;
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM