导入 SQL 时出现报错解决方法

一、导入 SQL 时出现 Invalid default value for ‘create_time’ 报错解决方法

这个错误的主要原因,是因为给了时间字段的列默认值一个 CURRENT_TIMESTAMP 默认值,而这个默认值在低版本的 MySQL 中是不支持的,因此就出现了题目中的这个报错,所以呢,把每个时间字段的默认值修改一下即可,比如:

DROP TABLE IF EXISTS `tb_config`;

CREATE TABLE `tb_config` (
  `config_name` varchar(100) NOT NULL DEFAULT '' COMMENT '配置项的名称',
  `config_value` varchar(200) NOT NULL DEFAULT '' COMMENT '配置项的值',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`config_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

改为

DROP TABLE IF EXISTS `tb_config`;

CREATE TABLE `tb_config` (
  `config_name` varchar(100) NOT NULL DEFAULT '' COMMENT '配置项的名称',
  `config_value` varchar(200) NOT NULL DEFAULT '' COMMENT '配置项的值',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`config_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

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

备份远程数据转存为sql文件,将其中一列类型Timestamp改为datetime,比如上述错误表改为:

 create table 'order_master' (    
'order_id' varchar(32) not null,    
'buyer_name' varchar(32) not null comment '买家名字',    
'buyer_phone' varchar(32) not null comment '买家电话',    
'buyer_address' varchar(128) not null comment '买家地址',    
'buyer_openid' varchar(64) not null comment '买家微信openid',    
'order_amount' decimal(8,2) not null comment '订单总金额',    
'order_status' tinyint(3) not null default '0' comment '订单状态,默认0新订单'    
'pay_status' tinyint(3) not null default '0' comment '订单状态,默认0未支付'    
'create_time' datetime not null comment '创建时间',    
'update_time' timestamp not null default current_timestamp on update current_timestamp comment '修改时间',    
primary key ('order_id'),    
key 'idx_buyer_openid' ('buyer_openid') 
) comment '订单表';
当在Navicat中导入SQL文件出现报错[Err] 1046 - No database selected,可能是由于以下原因导致的: 1. 未选择数据库:在导入SQL文件之前,确保已经选择了要导入到的数据库。可以在Navicat的连接窗口中选择数据库,或者在导入SQL文件指定数据库。 2. MySQL配置问题:有候,MySQL的配置可能会导致导入SQL文件出现报错。可以尝试修改MySQL的配置文件my.ini,增加max_allowed_packet参数的值,以及增加wait_timeout和interactive_timeout参数的值。 以下是解决这个问题的两种方法方法一:选择数据库 在导入SQL文件之前,确保已经选择了要导入到的数据库。可以按照以下步骤进行操作: 1. 打开Navicat并连接到MySQL数据库。 2. 在连接窗口中选择要导入到的数据库。 3. 在导航栏中选择“工具”>“SQL文件执行器”。 4. 在SQL文件执行器窗口中,选择要导入SQL文件。 5. 点击“运行”按钮执行SQL文件。 方法二:修改MySQL配置文件 如果选择数据库仍然无法解决问题,可以尝试修改MySQL的配置文件my.ini。按照以下步骤进行操作: 1. 找到MySQL安装目录下的my.ini配置文件。 2. 使用文本编辑器打开my.ini文件。 3. 在文件中查找max_allowed_packet参数,并增加其值。例如,将max_allowed_packet=8M修改为max_allowed_packet=16M。 4. 在文件中增加wait_timeout和interactive_timeout两项参数,并设置其值。例如,可以添加以下两行: wait_timeout=28800 interactive_timeout=28800 这将增加等待超间为8小。 5. 保存并关闭my.ini文件。 6. 重启MySQL服务。 请注意,修改MySQL配置文件可能需要管理员权限。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良辰美景好时光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值