mysqldump --where子句未按预期工作

时间:2015-11-11 06:22:15

标签: mysql mysqldump

我想只获取最新行的转储。但是,当我通过--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;

2 个答案:

答案 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"