Nic*_*ick 2 mysql insert duplication select
你能帮我解决一个问题吗。任务是在 MySQL 数据库中插入一条记录。条款:
表 'NETFLOW'.'Month' 中的关键列是:
事情是尽快查询,如果可能的话,在一个查询中。
当前查询的文本是:
INSERT INTO `netflow`.`Month` (`Year`, `Month`, `Day`, `Hour`, `srcaddr`,`dstaddr`, `doctets`)
(
SELECT
YEAR( FROM_UNIXTIME( `unix_secs` ) ) AS `YEAR`,
MONTH( FROM_UNIXTIME( `unix_secs` ) ) AS `MONTH`,
DAYOFMONTH( FROM_UNIXTIME( `unix_secs` ) ) AS `DAY`,
HOUR( FROM_UNIXTIME( `unix_secs` ) ) AS `HOUR`,
`srcaddr` ,
`dstaddr` ,
`doctets`
FROM `netflow`.`raw`
WHERE `unix_secs` <= 1394179200
GROUP BY
`YEAR`,
`MONTH`,
`DAY`,
`HOUR`,
`srcaddr`,
`dstaddr`
)
ON DUPLICATE KEY UPDATE
...
Run Code Online (Sandbox Code Playgroud)
如果要使用新值更改值,可以使用:
ON DUPLICATE KEY UPDATE
doctets = VALUES(doctets) ;
Run Code Online (Sandbox Code Playgroud)
或者如果您想将新值添加到现有值中:
ON DUPLICATE KEY UPDATE
doctets = doctets + VALUES(doctets) ;
Run Code Online (Sandbox Code Playgroud)