【发布时间】:2015-06-25 15:01:57
【问题描述】:
当我尝试导入脚本的数据库表结构时出现以下错误。
错误 SQL查询:
-- --------------------------------------------------------
--
-- Table structure for table `characters`
--
CREATE TABLE IF NOT EXISTS `characters` (
`id` INT( 11 ) NOT NULL ,
`tag_id` INT( 11 ) NOT NULL ,
`anime_title_id` INT( 11 ) NOT NULL ,
`role` VARCHAR( 128 ) NOT NULL ,
`first_name` VARCHAR( 512 ) CHARACTER SET utf8 NOT NULL ,
`last_name` VARCHAR( 512 ) CHARACTER SET utf8 NOT NULL ,
`japanese_name` VARCHAR( 512 ) CHARACTER SET utf8 NOT NULL ,
`description` TEXT CHARACTER SET utf8 NOT NULL ,
`source_link` VARCHAR( 512 ) NOT NULL ,
`date_updated` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
`date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = INNODB AUTO_INCREMENT =133870 DEFAULT CHARSET = latin1;
MySQL 说:文档
`#1293 - 表定义不正确;在 DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列
【问题讨论】:
-
我会说错误很明显。你不明白哪一部分?
-
我的意思是如何清除以下错误?
-
哪一个更好,TIMESTAMP 列与 CURRENT_TIMESTAMP 的 DEFAULT 为 date_created' 或 'date_updated'?
-
要回答这个问题,您必须对表格的预期用途了解很多。
-
阅读您的代码,这很有帮助。让我帮忙,错误显示
there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause,这意味着您应该只有一个时间戳列,默认为CURRENT_TIMESTAMP,因此将一个或多个列类型从TIMESTAMP更改为DATETIME或删除date_updated 的默认值。
标签: php mysql sql database phpmyadmin