sql >> データベース >  >> RDS >> Mysql

ノードJSを使用してレコードの配列をmysqlに挿入します

    レコードの配列を一括挿入できますが、その前に配列の配列に変換する必要がある場合があります

    配列reduceを使用して、このような配列を取得します

    let j=[
                   {Name: '', Id: 1},
                   {Name: '', Id: 2},
                   {Name: '', Id: 3},
                   {Name: '', Id: 4},
                   {Name: '', Id: 5},
                   {Name: '', Id: 6}
                  ];
    
                  let values=j.reduce((o,a)=>{
                        let ini=[];
                        ini.push(a.Name);
                        ini.push(a.Id);
                        o.push(ini);
                        return o
                  },[])
                  console.log(values);
    

    これは

    を出力します
    [["",1],["",2],["",3],["",4],["",5],["",6]]
    

    次に、mysqlデータベースに挿入します

    const con=require('./mysql.js'); //mysql connectionin mysql.js 
    
    var sql = "INSERT INTO customers (name, id) VALUES ?";
    con.query(sql, [values], function (err, result) { //pass values array (from above)  directly here
        if (err) throw err;
        console.log("Number of records inserted: " + result.affectedRows);
      });
    });
    

    したがって、複数のデータ挿入の形式は、[[[a,b],[b,c],[d,k]]]のようにする必要があります。

    var Promise = require("bluebird");//for promises
    const promisecon=Promise.promisifyAll(require('./mysql.js'));//
      var sql = "INSERT INTO customers (name, id) VALUES ?";
        promisecon.queryAsync(sql,[values]).then((result)=>{//bluebird identifies with Async
          console.log(result);
        }).catch(function(err){
            console.log(err);
          })
    
     var sql = "INSERT INTO customers (name, id) VALUES ?";
    async function build() {
                try {
                  const result =await con.queryAsync(sql,[values]);
    
                     console.log(result);
    
                } catch (err) {
                  // do something
                }
              }
              build();
    



    1. DBMS_RANDOMを使用してOracleでランダムな日付を生成します

    2. 同じセッションIDを持つレコードのMySQLエコー数

    3. SQLで行に番号を付ける方法

    4. 同じクエリでInsertとSelectLAST_INSERT_ID()を実行できませんか?