0
데이터베이스가 테스트 데이터로 오염되어 일부 행을 정리하고 싶습니다. 삭제하려고하면 외래 키 제약 조건이 실패했다는 메시지가 나타납니다. 나는 (CASCADE ON 추가) 테이블 구조테이블 구조를 변경하지 않고 캐스케이드 삭제
나는이 같은 노력 변경하는 것을 방지 할 수 있습니다 경우 : 부속 여러 반환 할 수 없습니다 때문에,
DELETE from transactions WHERE itemID = (SELECT itemID from items WHERE price=0);
DELETE from items WHERE price=0;
하지만이 작동하지 않습니다 행. 내가 그것을 루프 몇 가지 마술을 할 수 있습니다 가정,하지만 난 (도 감사합니다 루프없이 답) 그 사용에 제로 경험이)
스키마 :
CREATE TABLE items (itemID int, price int, description varchar(30), PRIMARY KEY(itemID));
CREATE TABLE transactions (transactionID int, itemID int, PRIMARY KEY (transactionID) , FOREIGN KEY (itemID) REFERENCES items(itemID));
INSERT INTO items VALUES (1, 0, "TEST");
INSERT INTO items VALUES (2, 0, "TEST2");
INSERT INTO transactions VALUES (1, 2);
INSERT INTO transactions VALUES (2, 2);
INSERT INTO transactions VALUES (3, 1);
감사합니다. 그게 내가 예상했던 것보다 쉬웠 어. :) – abinmorth