2

我想用这样的列创建一个表。

CREATE  TABLE `user_gender` (
  `user_gender_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `user_gender_title` VARCHAR(100) NOT NULL ,
  `user_gender_modified_on` DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00 ,
  `user_gender_created_on` DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00 ,
  PRIMARY KEY (`user_gender_id`) )
ENGINE = InnoDB;

但似乎默认的 0000-00-00 不能在 mysql 中工作。但是我从 joomla 数据库模型中模仿了它,所以我很确定它应该可以正常工作。但我的 phpadmin 一直说 -00-00 中存在语法错误。谁能解释一下?

4

3 回答 3

2

尝试将 drefault 值放在引号中:

CREATE  TABLE `user_gender` (
  `user_gender_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `user_gender_title` VARCHAR(100) NOT NULL ,
  `user_gender_modified_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  `user_gender_created_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  PRIMARY KEY (`user_gender_id`) )
ENGINE = InnoDB;
于 2013-02-07T17:45:48.273 回答
1

您缺少默认值的引号。

CREATE  TABLE `user_gender` (
`user_gender_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
`user_gender_title` VARCHAR(100) NOT NULL ,
`user_gender_modified_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`user_gender_created_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
PRIMARY KEY (`user_gender_id`) )
ENGINE = InnoDB;
于 2013-02-07T17:46:54.227 回答
0

这似乎已被 MySQL 5.5 打破。我最近升级并破坏了一个依赖于在特定实例中设置的值“0000-00-00 00:00:00”的应用程序。它以前一直有效,但不再是唯一的变化是平台版本更新。

于 2016-03-09T03:23:42.603 回答