해당 오류는 연계참조무결성 제약조건으로 생기는 오류이다.
↓ 처음 테이블을 생성할 때 ON DELETE CASCADE 옵션을 추가하고 작업하였다면 상관없지만
CREATE TABLE products(
pd_id INT(10) PRIMARY KEY,
sup_id INT(10),
price INT(10),
FOREIGN KEY (sup_id) REFERENCES supplier(sup_id) ON DELETE CASCADE
);
↓ ON DELETE CASCADE 옵션없이 작업하다가 데이터를 삭제할 경우
DELETE FROM supplier WHERE sup_id = 1;
↓ SQL Error [1451] [23000]: (conn=15) Cannot delete or update a parent row: a foreign key constraint fails 가 발생한다.

그럼 ON DELETE CASCADE 조건없이 테이블을 만든 후 작업하다가 ON DELETE CASCADE 옵션 추가하고 싶을 경우가 생긴다면?
1) 일단 해당테이블의 제약조건을 확인해보자
방법1)
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_NAME ='products';

방법2) 테이블에 들어가서 외래키 확인 (*변경하려는 포린키 맞는지 상세보기로 확인)


2) foreign key 제거하기
ALTER TABLE [테이블명] DROP FOREIGN KEY [포린키의 이름];
ALTER TABLE products DROP FOREIGN KEY products_ibfk_1;
↓ 제약조건확인시 'products_ibfk_1' 이라는 포린키가 삭제되었다.

3) foreign key 다시 추가하기 (+ ON DELETE CASCADE 옵션)
ALTER TABLE [테이블명] add FOREIGN KEY([컬럼명]) REFERENCES [부모테이블명][(컬럼명)] ON DELETE CASCADE;
↓ 외래키에 on delete cascade 적용
ALTER TABLE products add FOREIGN KEY(sup_id) REFERENCES supplier(sup_id) ON DELETE CASCADE;

↓ 들어간것 확인되면 다시 지워보자
DELETE FROM supplier WHERE sup_id = 1;

↓ SQL Error [1451] [23000]: (conn=15) Cannot delete or update a parent row: a foreign key constraint fails 오류없이 삭제가 되었다.
