使用MySQL 5.6.17设计了本地服务器数据库和表,并导出为*.sql文件。
当尝试将*.sql文件导入Live (MySQL 5.1.36)时,出现了以下错误:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clauseUnderstood the issue through this link
有没有办法在不更新MySQL版本的情况下将本地服务器的*.sql文件导入到Live?
表:
CREATE TABLE 'currency' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'currency_name' varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT
NULL,
'country' varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
'currency' varchar(5) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
'created_by' int(11) NOT NULL,
'created_on' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
'status' int(1) NOT NULL DEFAULT '1',
'modified_by' int(11) DEFAULT NULL,
'modified_on' timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY ('id')) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;注:- Windows Server运行WAMP(本地服务器)和QNAP(Live )。
发布于 2015-05-13 12:40:24
没有一种直接的方法可以做到这一点,因为这不是MySQL服务器5.6.5之前的任何版本的有效表定义。
您可以手工编辑转储文件,或者使用像sed或perl这样的工具来修改违规行,或者更改源服务器上的表定义.但是,您的应用程序(想必是期望这种行为)将无法正常工作。
您还可以修改表定义,使其在5.1中有效,只使用一个自动时间戳,并使用触发器获取所需的其余行为。
当然,最好的办法是:
https://stackoverflow.com/questions/30205245
复制相似问题