var mysql = require('mysql');
var db = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
// database: 'opentutorials'
// database : 'express_db'
});
db.connect(function (err) {
if (err) throw err;
console.log("Connected");
// Error : ER_DB_CREATE_EXISTS
db.query(`CREATE DATABASE express_db`, function (err, result) {
if (err) throw err;
console.log('database created');
});
db.query(`use express_db`, function (err, result) {
if (err) throw err;
console.log('use database express_db');
})
var sql = `CREATE TABLE users (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL)`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log('table created');
});
sql = `INSERT INTO users (id, name, email)
VALUES ('90', 'William', 'johnn@email.com')`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log('inserted data');
});
sql = `select * from users`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
});
module.exports = db;
// exports db....
[nodemon] restarting due to changes...
[nodemon] starting `node main.js`
[nodemon] restarting due to changes...
[nodemon] starting `node main.js`
Connected
database created
use database express_db
table created
inserted data
[ RowDataPacket { id: 90, name: 'William', email: 'johnn@email.com' } ]
그리고 나서
중복 에러를 모두 없애기 위해서 처리 해줌
if exists 붙이기
var mysql = require('mysql');
var db = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
// database: 'opentutorials'
// database : 'express_db'
});
db.connect(function (err) {
if (err) throw err;
console.log("Connected");
// Error : ER_DB_CREATE_EXISTS
db.query(`CREATE DATABASE IF NOT EXISTS express_db`, function (err, result) {
if (err) throw err;
console.log('database created');
});
db.query(`use express_db`, function (err, result) {
if (err) throw err;
console.log('use database express_db');
})
var sql = `DROP TABLE IF EXISTS users`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log('table droped');
});
sql = `CREATE TABLE IF NOT EXISTS users (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
UNIQUE INDEX (name))`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log('table created');
});
sql = `REPLACE INTO users (id, name, email)
VALUES (NULL, 'William', 'william@email.com')`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log('inserted data');
});
sql = `REPLACE INTO users (id, name, email)
VALUES (NULL, 'JOHN', 'johnn@email.com')`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log('inserted data');
});
sql = `REPLACE INTO users (id, name, email)
VALUES (NULL, 'JOHN', 'johnn@email.com')`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log('inserted data');
});
sql = `select * from users`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
});
module.exports = db;
// exports db....
data 들어갈 때는 replace into
그렇게 되면 id는 바뀐다 대신 새 내용으로는 업데이트되고
[nodemon] restarting due to changes...
[nodemon] starting `node main.js`
Connected
database created
use database express_db
table droped
table created
inserted data
inserted data
inserted data
[
RowDataPacket { id: 1, name: 'William', email: 'william@email.com' },
RowDataPacket { id: 3, name: 'JOHN', email: 'johnn@email.com' }
]
unique index는 필요하다 왜냐하면 id로는 구별 못하기 때문
그래서 john이 겹치면 id = 2 -> id = 3으로 바뀐 새 데이터가 들어간다
http://jason-heo.github.io/mysql/2014/03/05/manage-dup-key2.html
참고한 블로그
'웹 프로그래밍 > SQL' 카테고리의 다른 글
sqlite 에서 mysql의 query는 all 함수 (0) | 2021.09.27 |
---|---|
redirect 하려면 res.end()하기 전에 302 location 고치기 (0) | 2021.09.24 |
ERROR 2002 (HY000): socket '/tmp/mysql.sock' (2) 해결하려고 brew services start mysql 함 (3) | 2021.09.24 |
[sql] 우유와 요거트 모두 산 사람 찾기 with tmp를 이용해서 품 (0) | 2021.09.15 |
[sql] 해비유저 IN () (0) | 2021.09.15 |
[sql] 프로그래머스 마지막 string, date 풀기 (0) | 2021.09.15 |
[sql] 프로그래머스 이제 join을 공부하자 (0) | 2021.09.15 |
[sql] 프로그래머스 IFNULL(name, "No name") (0) | 2021.09.15 |