[error][mysql/mariadb] Error executing DDL "alter table .. drop foreign key if exists...
·
CS/Database
✅ ddl-auth: create ➡️ 테이블을 drop 하고 create 하려고 해보면 이런 에러를 본 적이 있을 것이다. fk 때문에 즉, 연관관계 때문에 발생한 error 자식 테이블들부터 지워나가야 하는데 아무렇게 테이블을 지우려하다보니 에러가 발생한다. ex) user를 삭제하려면 likes 때문에 삭제를 못 한다. ➡️ likes 삭제 후 user 삭제 가능 💡 참고 spring: jpa: hibernate: ddl-auto: create: 기존테이블을 삭제 후 다시 생성한다.(닫을 때 삭제하지는 않는다) create-drop: create와 비슷하지만, 종료시점에 테이블을 삭제한다. update: 삭제하지 않고 계속 업데이트한다. validate: 엔티티와 테이블이 정상 매핑되었는지만 확인한..
soft delete 와 hard delete 란?
·
CS/Database
📌 soft delete 란 논리 삭제 UPDATE 명령어를 사용하여 삭제 여부를 알 수 있는 flag를 사용하여 표현 ❗️단점 실수로 삭제하였을 시에 복원이 가능해야 할 때 사용 ❗️단점 데이터베이스의 용량이 커질 수 밖에 없음(계속 누적되어 쌓임) SELECT 조회 시 불필요한 검색 조건을 추가해야 함(없다고 쳐야하는 데이터이기 때문) where을 꼭 써야 하기 때문에 직관적이지 않음 📌 hard delete 란 물리 삭제 테이블에서 제거하는 것 DELETE 명령어를 사용하여 직접 데이터를 삭제 ❗️장점 삭제 처리를 통해 디스크 사용량을 줄일 수 있음 SQL 작성이 편하다. ❗️단점 데이터를 복구할 수 없음 Reference Soft Delete vs Hard Delete Valar Codilis. ..