Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT 导出数据库表语句如下: mysqldump -u'ifly_ssp'-p'imsp_vcloud' ifly_cpcc_ad_basic T_MEDIA_INFO>/root/database/T_MEDIA_INFO.sql mysqldump -u'ifly_ssp' -p'imsp_vcloud' ifly_cpcc_ad_basic T_OTHER_PLAT>/root/database/T_OTHER_PLAT.sql 这个是在命令行中输入,不是在mysql中输入
然后在另一个数据库导入 source /home/htling/T_MEDIA_INFO.sql; 报错
查看建表语句如下,发现:
CREATE TABLE
T_MEDIA_INFO (
ID int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '媒体ID',
NAME varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '媒体名称',
NICKNAME varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '媒体别名',
JOIN_NAME varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '衔接名(给运营识别更好的识别应用名称)',
TYPE int(10) unsigned NOT NULL COMMENT '媒体类型ID',
PLATFORM_TYPE int(10) unsigned NOT NULL COMMENT '平台类型:1:android;2:ios;0:其他',
DOWNLOAD_ADDR varchar(1024) COLLATE utf8_bin DEFAULT NULL COMMENT '下载地址',
USER_ID int(10) unsigned NOT NULL COMMENT '媒体所属用户ID',
ADUNIT_NUM int(10) unsigned NOT NULL DEFAULT '0' COMMENT '广告位数目',
MEDIA_SHOW_ID varchar(8) COLLATE utf8_bin DEFAULT NULL COMMENT '媒体对外展示ID',
IS_DEL tinyint(1) DEFAULT '0' COMMENT ' 是否删除:0代表未删除,1 代表删除',
PACKAGE_NAME varchar(128) COLLATE utf8_bin NOT NULL COMMENT '包名',
NOTE varchar(256) COLLATE utf8_bin DEFAULT NULL COMMENT '应用描述',
FORBID_DESC text COLLATE utf8_bin NOT NULL,
VERIFY_STATUS int(4) NOT NULL DEFAULT '0' COMMENT '审核状态:0未提交,1审核中,2审核通过,3审核拒绝',
PLAT_STATUS int(4) DEFAULT NULL COMMENT '平台审核状态',
UPLOAD_DESC text COLLATE utf8_bin COMMENT '上传描述',
CREATE_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
COMMIT_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '提交时间',
ONLINE_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '上线时间',
VERIFY_MARK varchar(256) COLLATE utf8_bin DEFAULT NULL COMMENT '审核备注',
FINAL_SCORE double NOT NULL DEFAULT '0' COMMENT '流量评价得分',
ACCESS_TYPE int(4) DEFAULT '0' COMMENT '媒体接入方式,0-sdk,1-api',
REGISTERED_FROM varchar(32) COLLATE utf8_bin DEFAULT 'voiceads' COMMENT '应用注册来源,默认voiceads',
APP_DOWNLOAD_URL varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '应用市场下载链接',
DAILY_ACTIVE_USER int(11) DEFAULT NULL COMMENT '日活跃用户数',
CROWD_KEYWORD varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '适用人群 用英文逗号隔开',
MEDIA_FLOW_TYPE tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '媒体流量类型 1:小媒体 2:大媒体',
IS_SPECIAL tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否是特殊媒体,{0 否,1是}',
UPDATE_TIME timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
COOPERATE_TYPE tinyint(1) NOT NULL DEFAULT '1' COMMENT '媒体合作类型 1: 合作媒体 2: 自有媒体',
MEDIA_TYPE tinyint(4) NOT NULL DEFAULT '0' COMMENT '媒体类型0线上媒体 1 线下媒体',
MEDIA_QUALITY decimal(4,1) NOT NULL DEFAULT '2.5' COMMENT '媒体质量标注(默认2.5分)',
AUDIT_TYPE tinyint(2) NOT NULL DEFAULT '1' COMMENT '审核方式:1.后置(先投后审) 2.前置(先审后投) 默认1',
PRIMARY KEY (ID),
KEY IDX_NAME (NAME) USING BTREE,
KEY IDX_TYPE (TYPE) USING BTREE,
KEY IDX_PLATFORM_TYPE (PLATFORM_TYPE) USING BTREE,
KEY IDX_USER_ID (USER_ID) USING BTREE,
KEY IDX_CREATE_TIME (CREATE_TIME) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=14002 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='媒体基本信息表';
/*!40101 SET character_set_client = @saved_cs_client */;
解释如下: mysql单表多timestamp报错# 一个表中出现多个timestamp并设置其中一个为current_timestamp的时候经常会遇到 #1293 - Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATEclause
原因是当你给一个timestamp设置为on updatecurrent_timestamp的时候,其他的timestamp字段需要显式设定default值 但是如果你有两个timestamp字段,但是只把第一个设定为current_timestamp而第二个没有设定默认值,mysql也能成功建表,但是反过来就不行...
最后解决了