我已经用谷歌搜索了这个问题,但没有发现任何东西。问题是这样的:
我有这样的桌子
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, ...)
否则,应更新
因此,我希望我描述了我的问题,并且一些“聪明人”会帮助我。
最佳答案
使用INSERT ... ON DUPLICATE KEY UPDATE
INSERT INTO Hourly (gmt, city) VALUES
(?, ?)
ON DUPLICATE KEY UPDATE
city = ?
关于mysql - Mysql在2个主键上插入新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17569031/