+ -
当前位置:首页 → 问答吧 → 高分求教··mysql版本问题·

高分求教··mysql版本问题·

时间:2011-09-15

来源:互联网

项目已经做完了·就要提交到万网的服务器上了·但却出了问题·
项目开发使用的是mysql4.1.22,万网的服务器使用的是mys14.0.27..在传入脚本之后报错了:

该表中有两个字段都是时间戳类型(TimeStamp)但默认值已经不一样了!提示中说我的语法错误··难道这是版本的问题吗??还望高人解答·如能提供解决方法,高分相谢!

作者: cenhuineng   发布时间: 2011-09-15

SQL code
-- 我的是没有问题的,估计是版本问题:
mysql> CREATE TABLE admin(
    ->   adminId INT(11) NOT NULL AUTO_INCREMENT,
    ->   adminName VARCHAR(20) DEFAULT NULL,
    ->   adminPwd VARCHAR(20) DEFAULT NULL,
    ->   adminPower INT(11) DEFAULT NULL,
    ->   adminLastLoginTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    ->   adminCreateTime TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
    ->   PRIMARY KEY (adminId)
    -> )ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '该实体对应管理员';
Query OK, 0 rows affected (0.03 sec)

mysql> select version();
+------------+
| version()  |
+------------+
| 5.1.54-log |
+------------+
1 row in set (0.00 sec)

作者: luoyoumou   发布时间: 2011-09-15

引用 1 楼 luoyoumou 的回复:

SQL code
-- 我的是没有问题的,估计是版本问题:
mysql> CREATE TABLE admin(
-> adminId INT(11) NOT NULL AUTO_INCREMENT,
-> adminName VARCHAR(20) DEFAULT NULL,
-> adminPwd VARCHAR(20) DEFAULT NULL,
……

我也是这样认为·但又觉得不妥·毕竟都属于mysql4系列的啊··到底犯错的是什么原因·难道真是时间戳的问题吗?我又该如何解决呢··

作者: cenhuineng   发布时间: 2011-09-15

-- 将红色部分去掉,然后更新的时候,手动更新adminLastLoginTime字段的值,就可以啦!
adminLastLoginTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

作者: luoyoumou   发布时间: 2011-09-15

引用 3 楼 luoyoumou 的回复:

-- 将红色部分去掉,然后更新的时候,手动更新adminLastLoginTime字段的值,就可以啦!
adminLastLoginTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

去掉之后还是不行·而且就算可以··其他地方的表也是应用到这样的字段的··程序改动太大啊··
唉··顶起!!!

作者: cenhuineng   发布时间: 2011-09-15

版本问题。自己把CREATE TABLE语句改一下。

作者: ACMAIN_CHM   发布时间: 2011-09-15

引用 5 楼 acmain_chm 的回复:

版本问题。自己把CREATE TABLE语句改一下。

改不了啊`现在整个项目都是靠这样的数据支撑的``

作者: cenhuineng   发布时间: 2011-09-15

打开你的脚本文件,把不兼容的语句改掉即可。不需要改数据。

作者: ACMAIN_CHM   发布时间: 2011-09-15

现在就是不知道哪些兼容哪些不兼容··5555

作者: cenhuineng   发布时间: 2011-09-15

把所有的非insert 语句拿出来,一个一个执行一下。

或者直接打开MYSQL的一般查询日志,看执行到哪一句有问题。

作者: ACMAIN_CHM   发布时间: 2011-09-15