我用谷歌搜索了这个问题,但没有发现任何东西。问题是这样的: 我有这样的表
CREATE TABLE IF NOT EXISTS `Hourly` (
`gmt` bigint(20) NOT NULL,
`city` int(11) NOT NULL,
`temp` float NOT NULL,
`temp_min` float NOT NULL,
`temp_max` float NOT NULL,
`pressure` float NOT NULL,
`humidity` int(11) NOT NUL`enter code here`L,
`temp_kf` float NOT NULL,
`weather` int(11) NOT NULL,
`icon` varchar(20) NOT NULL,
`clouds` float NOT NULL,
`wind_speed` float NOT NULL,
`wind_deg` float NOT NULL,
`rain_3h` float NOT NULL,
`snow_3h` float NOT NULL,
`sys_pod` varchar(255) NOT NULL,
`received` bigint(20) NOT NULL,
PRIMARY KEY (`gmt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
问题是我想在gmt
和city
都不存在时插入新行,不是其中之一。
例如,我的表已经由
INSERT INTO `Hourly` (`gmt`, `city`, ...) VALUES
(1373446800, 1, ...)
我想插入新行
INSERT INTO `Hourly` (`gmt`, `city`, ...) VALUES
(1373446800, 2, ...)
否则,应该更新
所以,我希望,我描述了我的问题,一些“聪明人”会帮助我。
答案 0 :(得分:0)
使用INSERT ... ON DUPLICATE KEY UPDATE
INSERT INTO Hourly (gmt, city) VALUES
(?, ?)
ON DUPLICATE KEY UPDATE
city = ?