我想只获取最新行的转储。但是,当我通过--where选项时,它不会倾倒行。但是当我使用相同的where子句执行select查询时,它返回行。这是我的选择查询:
SELECT * FROM abc.`xyz` WHERE UPDATED_AT >="2015-11-11 10:03:37";
这是我的mysqldump命令:
mysqldump --no-create-info --replace -h source_server --user=backup1 --password='passcode' abc xyz --where='UPDATED_AT >="2015-11-11 10:03:37"' > "backup.sql"
上面的mysqldump命令有什么问题,为什么它没有转储记录?
转储文件部分如下:
--
-- Dumping data for table `xyz`
--
-- WHERE: UPDATED_AT >='2015-11-11 10:03:37'
LOCK TABLES `xyz` WRITE;
/*!40000 ALTER TABLE `xyz` DISABLE KEYS */;
/*!40000 ALTER TABLE `xyz` ENABLE KEYS */;
UNLOCK TABLES;
答案 0 :(得分:0)
在where子句中,UPDATED_AT
字段类型为时间戳,我将字段类型更改为DATETIME。它按预期工作。
对于上面的最新版本字段类型更改工作,但对于mysql 5.0.5
FROM_UNIXTIME
有效。
答案 1 :(得分:0)
尝试以下命令:
mysqldump --tz-utc=0 --no-create-info --replace -h source_server --user=backup1 --password='passcode' abc xyz --where='UPDATED_AT >="2015-11-11 10:03:37"' > "backup.sql"