【问题标题】:How to insert all values from another table using sequelize如何使用 sequelize 从另一个表中插入所有值
【发布时间】:2017-01-19 10:04:38
【问题描述】:

//表main_lookup

const main_lookup=DB.connection.define('main_lookup',{

main_lookup_name: {
    type :Sequelize.STRING,
    primaryKey: true,
    allowNull: false
},

value:{
type:Sequelize.JSON,
allowNull:false,
}

});

//表2

const school_lookup= DB.connection.define('school_lookup',{


school_id : {
    type :Sequelize.STRING,
    allowNull: false,
    references: {            
         model: schools,
         key: 'school_id'
    }
},  
lookup_name: {
    type :Sequelize.STRING,
    unique: true,
    allowNull: false
},
value: {
type: Sequelize.JSON,
allowNull: false,
}


});

我需要将数据从 main_lookup 表发送到学校查找数据

school_id // that is given by me 
lookup_name // that is copy from main_lookup
value // that is copy from main_look_up

示例 主查找 // table1

main_lookup_name value
---------------- -----
language         ['english','tamil']
subject          ['social','maths']

解决方法与下面的内容类似

school_lookup // table2 //needed 

school_id lookup    value
--------- ------    -----
cit       language  ['english','tamil']
cit       subject   ['social','maths']

我需要帮助以简单的方式进行续集

【问题讨论】:

    标签: javascript mysql sequelize.js


    【解决方案1】:

    您可以使用原始查询来做同样的事情。

    var Sequelize = require('sequelize');
    var sequelize = new Sequelize('database', 'username', 'password');
    
    sequelize.query("insert into <table1> select * from <table2>", { 
        type:Sequelize.QueryTypes.SELECT
    }).then(function(results) {
        console.log(results) // or do whatever you want
    })
    

    【讨论】:

      【解决方案2】:

      我认为您使用 sequelize 就像人们使用 microsoft excel 或 microsoft access 一样。你可以简单地在sequelize中建立关系。 这是代码

      //学校模型

          const School=Sequelize.define('school',{
      
              name: {
                  type :Sequelize.STRING,
                  allowNull: false
              }
          });
      

      //主题

          const Subject= Sequelize.define('subject',{
      
              type: {
                  type :Sequelize.STRING,
                  unique: true,
                  allowNull: false
              },
              value: {
                  type: Sequelize.ARRAY,
                  allowNull: false,
              }
          });
      

      //数据库

          const School = require('./path_to_schoolmodel');
          const Subject = require('./path_to_subjectmodel');
      
          Subject.belongsTo(School);
          School.hasMany(Subject);
      

      学校模型

          id name
          -- ---------------------
          1  'fullstack academy'
          2  'app academy'
      
          Subject model
          id type      value                schoolID
          -- --------- -------------------- ------------------
          1  language  ['english','tamil']  2
          2  subject   ['social','maths']   1
      

      如果您设置模型关系,您应该能够看到这样的数据。

      然后当您在服务器端使用 Sequelize 模型查询时。

          const School = require('./path_to_schoolmodel');
          const Subject = require('./path_to_subjectmodel');
          School.findAll({
               include:[ Subject ]
             })
             .then(console.log)
             .catch(console.error)
      

      你的 console.log 应该返回类似

          [
              {
                  id: 1,
                  name: 'fullstack academy'
                  subjects: [{
                      id: 2,
                      type: 'subject',
                      value: [
                         'socials', 'maths'
                      ]
                  }]
              },
              {
                  id: 2,
                  name: 'app academy'
                  subjects: [{
                      id: 1,
                      type: 'language',
                      value: [
                         'english', 'tamil'
                      ]
                  }]
              },
          ]
      

      【讨论】:

      • 感谢您的回复。但我需要将一个表的数据传输到另一个表。你已经给出了选择查询操作
      • 我需要类似 INSERT INTO TABLE2 (COL1, COL2, COL3) SELECT COL1, COL4, COL7 FROM TABLE1 in sequalize
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 2021-10-19
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      相关资源
      最近更新 更多