- DELETE
where 절이 없으면 모든 행 삭제 + 테이블은 남아 있음DELETE FROM 테이블 명 (WHERE)- DROP
테이블을 통째로 삭제DROP TABLE 테이블명- TRUNCATE
모든 행 삭제 + 테이블은 남아 있음TRUNCATE 테이블명
제약 조건 고려 여부이다. 제약조건을 보지 않고 삭제하는 법
SET FOREIGN_KEY_CHECKS = 0;
정말 어려웠던 주문하기 API가 드디어 끝났다 ㅠㅠ
분명 강의 보면서 따라 했는데도 오류가 떠서 정말 힘들었던 파트였다
결국 저장된 DB의 문제였다는...
items : 장바구니 정보
delivery : 배송 정보
사용자 정보 , 책 정보
let sql = `INSERT INTO delivery (address, receiver , contact) VALUES (? , ? , ?)`;
let values = [delivery.address, delivery.receiver, delivery.contact];
let [results] = await conn.execute(sql, values);
delivery_id = results.insertId;
sql = `INSERT INTO orders (book_title , total_quantity , total_price , user_id , delivery_id) VALUES (? , ? , ? , ? , ?)`;
values = [first_book_title, total_quantity, total_price, user_id, delivery_id];
[results] = await conn.execute(sql, values);
order_id = results.insertId;
sql = `SELECT cart_book_id , quantity FROM cartItems WHERE id IN (?)`;
let [orderItems, fields] = await conn.query(sql, [items]);
sql = `INSERT INTO ordered_book (order_id, book_id , quantity) VALUES ?`;
values = [];
orderItems.forEach(v => {
values.push([order_id, v.cart_book_id, v.quantity]);
});
results = await conn.query(sql, [values]);
let sql = `DELETE FROM cartItems WHERE id IN (?)`;
let result = await conn.query(sql, [items]);
책 정보와 사용자 정보만 가져와서 바로 주문만 하면 될 줄 알았는데
장바구니 정보와 배송 정보를 가져왔다가 주문할 책 저장하고
마지막에 장바구니에 주문한 책 정보 삭제까지 정말 여러 과정을 거쳤다 ㅠㅠ
솔직히 강의 한번에 이해가 되지 않아서 발생한 오류를 수정하면서
어려번 코드를 보니 겨우 이해만 된 정도이다
이런 복잡하고 긴 로직을 백엔드 개발자가 한다니 정말 대단한 거 같다