MySQL 错误: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP - 解决方法

在MySQL中创建表时,如果试图将多个TIMESTAMP类型的列设置默认值为CURRENT_TIMESTAMP,就会出现“Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP”错误。

错误原因:

MySQL规定,在一个表中只能有一个TIMESTAMP类型的列具有CURRENT_TIMESTAMP属性。

解决方法:

可以通过修改SQL语句,将默认值为CURRENT_TIMESTAMP的设置应用到一个TIMESTAMP类型的列上。例如:

DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods`  (
  `Gid` int(0) NOT NULL AUTO_INCREMENT,
  `Sid` int(0) NULL DEFAULT NULL,
  `Gname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gbuyprice` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gsellprice` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gphoto` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gdescribe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gaudit` enum('0','1') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0',
  `Gstatus` enum('0','1','2','3') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0',
  `Gtime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
  `Gupdate_time` timestamp(0) NULL DEFAULT NULL,
  `SELLusername` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  PRIMARY KEY (`Gid`) USING BTREE,
  INDEX `Sid`(`Sid`) USING BTREE,
  CONSTRAINT `Sid` FOREIGN KEY (`Sid`) REFERENCES `student` (`Sid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

ALTER TABLE `goods` MODIFY COLUMN `Gupdate_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0);

注:

  • Gupdate_time的默认值改为CURRENT_TIMESTAMP(0)并添加ON UPDATE CURRENT_TIMESTAMP(0)的约束。
  • 确保只有一个TIMESTAMP类型的列具有CURRENT_TIMESTAMP属性。

通过以上修改,可以成功创建表,并且Gupdate_time列会在每次更新时自动更新为当前时间。

MySQL 错误:  Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP - 解决方法

原文地址: https://www.cveoy.top/t/topic/oWvx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录