2015-11-11 89 views
1

我想仅转储最新行的转储。但是当我传递--where选项时,它不会倾倒行。但是当我执行与相同的where子句选择查询它返回行。这是我的选择查询:mysqldump - where子句不按预期方式工作

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

它工作正常,当我删除'where' – Baran

+0

那么'where'条件真的是问题。现在,它永远不会回复真实。 –

+0

UPDATED_AT是不是日期时间的时间戳。我应该尝试改变字段类型吗? – Baran

回答

0

在子句UPDATED_AT字段类型是时间戳我改变字段类型为DATETIME。它按预期工作。

对于最新版本的字段类型改变工程,但为mysql 5.0.5 FROM_UNIXTIME工程。

+0

FROM_UNIXTIME返回所有行。 – Baran