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 주문 상세 조회 구현한 코드❗