Node.js MySQL 삽입


테이블에 삽입

MySQL에서 테이블을 채우려면 "INSERT INTO"문을 사용하십시오.

예시

"고객" 테이블에 레코드 삽입:

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql = "INSERT INTO customers (name, address) VALUES ('Company Inc', 'Highway 37')";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });
});

위의 코드를 "demo_db_insert.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_db_insert.js" 실행

C:\Users\Your Name>node demo_db_insert.js

다음과 같은 결과를 얻을 수 있습니다.

Connected!
1 record inserted


여러 레코드 삽입

둘 이상의 레코드를 삽입하려면 값을 포함하는 배열을 만들고 sql에 물음표를 삽입합니다. 이 물음표는 값 배열로 대체됩니다.
INSERT INTO customers (name, address) VALUES ?

예시

"고객" 테이블을 데이터로 채우십시오.

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql = "INSERT INTO customers (name, address) VALUES ?";
  var values = [
    ['John', 'Highway 71'],
    ['Peter', 'Lowstreet 4'],
    ['Amy', 'Apple st 652'],
    ['Hannah', 'Mountain 21'],
    ['Michael', 'Valley 345'],
    ['Sandy', 'Ocean blvd 2'],
    ['Betty', 'Green Grass 1'],
    ['Richard', 'Sky st 331'],
    ['Susan', 'One way 98'],
    ['Vicky', 'Yellow Garden 2'],
    ['Ben', 'Park Lane 38'],
    ['William', 'Central st 954'],
    ['Chuck', 'Main Road 989'],
    ['Viola', 'Sideway 1633']
  ];
  con.query(sql, [values], function (err, result) {
    if (err) throw err;
    console.log("Number of records inserted: " + result.affectedRows);
  });
});

위의 코드를 "demo_db_insert_multple.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_db_insert_multiple.js" 실행

C:\Users\Your Name>node demo_db_insert_multiple.js

다음과 같은 결과를 얻을 수 있습니다.

Connected!
Number of records inserted: 14

결과 개체

쿼리를 실행하면 결과 개체가 반환됩니다.

결과 개체에는 쿼리가 테이블에 어떤 영향을 미쳤는지에 대한 정보가 포함되어 있습니다.

위의 예에서 반환된 결과 개체는 다음과 같습니다.

{
  fieldCount: 0,
  affectedRows: 14,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '\'Records:14  Duplicated: 0  Warnings: 0',
  protocol41: true,
  changedRows: 0
}

속성 값은 다음과 같이 표시할 수 있습니다.

예시

영향을 받는 행 수를 반환합니다.

console.log(result.affectedRows)

다음 결과가 생성됩니다.

14

삽입된 ID 가져오기

자동 증분 ID 필드가 있는 테이블의 경우 결과 개체를 요청하여 방금 삽입한 행의 ID를 얻을 수 있습니다.

참고: 삽입된 ID를 얻으려면 하나의 행만 삽입할 수 있습니다.

예시

"customers" 테이블에 레코드를 삽입하고 ID를 반환합니다.

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  var sql = "INSERT INTO customers (name, address) VALUES ('Michelle', 'Blue Village 1')";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted, ID: " + result.insertId);
  });
});

위의 코드를 "demo_db_insert_id.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_db_insert_id.js" 실행

C:\Users\Your Name>node demo_db_insert_id.js

그 대가로 다음과 같은 것을 줄 것입니다.

1 record inserted, ID: 15