를 작동하지 않는있는 테이블을 업데이트 나는 다음과 같은 테이블이 있습니다 당신이 볼 수 있듯이, 날짜와 침대 복합 기본 키를 형성 복합 키가 제대로
합니다.
나는이 쿼리를 실행하려고 :INSERT INTO days (date, operating_time, bed) VALUES ('2016-11-07', 6.55, 1) ON duplicate key update operating_time=VALUES(operating_time);
문제는 날짜 열에서만을 기반 업데이트 보인다는 것이다. 예를 들어, 다음 1의 침대 값에 대한 위의 쿼리를 실행하고, 그래서 그것을 다시 실행하지만 2의 침대 값이 실제로 원래 기록을 업데이트합니다 (하나의 어디 침대 = 1)
어떻게 ON DUPLICATE KEY
명세서에서 날짜와 침대 열을 모두 확인합니다. 여기에 편집
이 (가) 테이블에 대한 문 만드는 것입니다 : 당신이 동일한 날짜하지만 서로 다른 bed
와 함께 INSERT
을 그래서 만약
CREATE TABLE `days` (
`date` date NOT NULL,
`operating_time` float DEFAULT '0',
`bed` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`date`,`bed`),
UNIQUE KEY `date_UNIQUE` (`date`),
KEY `bed_idx` (`bed`),
KEY `date` (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
이것이 작동하지 않았습니까? – barudo
@barudo 난 그냥 위와 같은 정확한 구조로 완전히 빈 테이블에 다시 시도했다. 그것은 작동하지 않았다. –
재생할 수 없습니다. 나를 위해 예상대로 작동합니다. – Plutonix