私は次の表を持って働いていないと、テーブルを更新します。は複合キーが正しく
私はこのクエリを実行しようとしています:
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
ステートメントで日付とベッド列の両方をチェックしますか?
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