[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_


[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_T

***今天在用Navicat运行数据库时出错了,主要原因是MySql 5.5和MySql 5.7(我用的5.7)之后版本的区别:5.5 只能有一个Timestamp,将其中一列类型改为datetime类型就可以解决。

代码如下:

DROP TABLE IF EXISTS `Order_`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `Order_` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `orderCode` varchar(255) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  `post` varchar(255) DEFAULT NULL,
  `receiver` varchar(255) DEFAULT NULL,
  `mobile` varchar(255) DEFAULT NULL,
  `userMessage` varchar(255) DEFAULT NULL,
  `createDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `payDate` timestamp NOT NULL ***DEFAULT CURRENT_TIMESTAMP***,
  `deliveryDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `confirmDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `uid` int(11) NOT NULL,
  `status` varchar(255) DEFAULT 'waitConfirm',
  `total` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_order_user` (`uid`),
  CONSTRAINT `fk_order_user` FOREIGN KEY (`uid`) REFERENCES `User` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2017151091 DEFAULT CHARSET=utf8;

解决办法:将我这里的四个DEFAULT CURRENT_TIMESTAMP删除掉三个。留一个就行,然后mysql5.7会默认类型为datetime。还有在运行数据库时候,要记得有外键关联的表看一下关联了什么表,首先建立,不然报错[Err] 1005 - Can’t create table ‘minsu.orderitem’ (errno: 150)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值