StackOverflow를 검색했지만 특정 질문에 대한 답변을 찾을 수 없습니다.중복 키 업데이트로 인한 외래 키 제약 조건 오류
최근에 나는 "INSERT INTO ... ON DUPLICATE KEY UPDATE"를 사용하여 목록으로 레코드를 업데이트하는 것을 크게 좋아했습니다. 오류의 결과
INSERT INTO itens (prod_id, qtd) VALUES (410, 1),(442, -1)
ON DUPLICATE KEY UPDATE qtd = qtd + VALUES(qtd)
: 그러나, 나는 다음 쿼리에 문제가 있었다 "추가 또는 자식 행을 업데이트 할 수 없습니다가 :. 외래 키 제약 조건이 실패"
다음은 해당 테이블의 구조입니다. "carrinho_id"는 외래 키입니다. 나는 외래 키를 가지고 무엇인가를하려하지 않고 있다는 사실에 의아해했다. 간단히 수량을 업데이트하고 싶었습니다.
CREATE TABLE IF NOT EXISTS `itens` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`carrinho_id` int(10) unsigned NOT NULL DEFAULT '1',
`prod_id` int(10) unsigned NOT NULL DEFAULT '1',
`qtd` int(12) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `carrinho_id` (`carrinho_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=229 ;
: 결국
, 나는 기본 키와 외래 키 모두를 지정하여 성공했다. 감사! –