본문 바로가기

공부/타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)

프로젝트: Node.js 기반의 REST API 구현(12)-order.js-TRUNCATE, SET FOREIGN_KEY_CHECKS=0;, DELETE WHERE IN();

MySQL 데이터 삭제하는 방법

1. DELETE

테이블은 남아있고 조건에 해당하는 행이 삭제 (조건이 없으면 전체 행 삭제되니 조심🔥)

DELETE FROM 테이블명 WHERE 조건;

 

2. DROP

테이블 전체 삭제

DROP TABLE 테이블명;

 

2. TRUNCATE

테이블 초기화 후 구조와 인덱스는 그대로 남아있고 테이블 행 전체 삭제 (조건을 줄 수 없음)

TRUNCATE 테이블명;

 

차이점 DELETE TRUNCATE
동작방식 행 단위로 삭제 (조건 줄 수 있음) 테이블 전체 삭제 (조건 줄 수 없음)
속도 느림 매우 빠름
로그 기록 각 행 삭제 기록 테이블 초기화 기록만 남음
트리거 트리거 발생 트리거 발생❌
트리거를 통해 처리하는 경우 사용 제한
트랜잭션 처리 트랜잭션 내에서 사용가능, 롤백가능 일부 시스템에서 트랙잭션 내 롤백 불가
AUTO_INCREMENT 초기화되지 않음 초기화 됨
참조 무결성 참조 무결성 지원 참조 무결성 제약이 있으면 실패

 

❄️제약조건 있어도 삭제할 수 있는 방법

SET FOREIGN_KEY_CHECKS=0;

➡️외래키 제약조건을 일시적으로 비활성화 하는 것

 

SET FOREIGN_KEY_CHECKS=1;

➡️외래키 제약조건을 다시 활성화 하는 것

 

🔥주문하기 API 수정

주문하기에서 받아오는 items를 cartItmes의 id를 받아와서 넣어주는 방법으로 API를 변경해서 구현했다❗

 

orderController.js

주문하기에 너무 많은 쿼리문을 실행해서 모듈로 정리해서 간결하게 만든 코드❗

 

주문 목록 조회 AND 주문 상세 조회 구현한 코드❗