我需要向当前数据表添加一些备份数据
类似的东西
INSERT INTO `gts`.`Events`
(`accountID`,`deviceID`,`timestamp`,`statusCode`,`latitude`,`longitude`,`gpsAge`,`speedKPH`,`heading`,`inputMask`,`odometerKM`,`creationTime`)
VALUES (SELECT `accountID`,`deviceID`,`timestamp`,`statusCode`,`latitude`,`longitude`,`gpsAge`,`speedKPH`,`heading`,`inputMask`,`odometerKM`,`creationTime`
FROM `historic`.`BD_01`
WHERE accountID='0001' AND timestamp > UNIX_TIMESTAMP('2014-05-01 00:00:00')
AND timestamp < UNIX_TIMESTAMP('2015-05-31 23:59:59'));
但是我在 SELECT 方面遇到错误。 我做错了什么?
备份数据表的列数少于当前数据表的列数,这就是我指定要使用哪些列的原因。
某些寄存器可以重复,我应该使用 REPLACE INTO 代替吗?
最佳答案
删除 VALUES
关键字。它应该只是INSERT INTO ... SELECT FROM
。您的查询应该类似于
INSERT INTO `gts`.`Events`
(`accountID`,
`deviceID`,
`timestamp`,
`statusCode`,
`latitude`,
`longitude`,
`gpsAge`,
`speedKPH`,
`heading`,
`inputMask`,
`odometerKM`,
`creationTime`)
SELECT `accountID`,
`deviceID`,
`timestamp`,
`statusCode`,
`latitude`,
`longitude`,
`gpsAge`,
`speedKPH`,
`heading`,
`inputMask`,
`odometerKM`,
`creationTime`
FROM `historic`.`BD_01`
WHERE accountID='0001'
AND timestamp > UNIX_TIMESTAMP('2014-05-01 00:00:00')
AND timestamp < UNIX_TIMESTAMP('2015-05-31 23:59:59');
关于mysql - 将数据从备份移动到当前数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31700533/