将DATE属性设置为默认值为某个固定日期

时间:2016-03-18 21:36:10

标签: mysql sql constraints

尝试创建一个具有DATE属性release的表。

我想将此日期默认为某个固定日期(具体为9999-12-31),但我使用以下方法收到SQL语法错误:

CREATE TABLE price(
    ...
    release DATE DEFAULT '99991231',
    ...
);

我所做的一点点搜索只向我展示了如何默认为当前日期或某种形式的动态日期,但我只想找到一种默认为固定日期的方法。

编辑更多细节:

CREATE TABLE game(gid INT NOT NULL AUTO_INCREMENT,
               name VARCHAR(128) NOT NULL,
               release DATE NOT NULL DEFAULT '9999-12-31',
               platform VARCHAR(128) NOT NULL,
               released BOOLEAN DEFAULT FALSE,
               PRIMARY KEY(gid)
              );

发出命令后出现以下错误:mysql -u root -p trade < game.sql

 ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'release DATE NOT NULL DEFAULT '9999-12-31',
               platform VARCHAR(' at line 3

其中trade是空数据库的名称,mysql --version产生输出mysql Ver 14.14 Distrib 5.5.47, for debian-linux-gnu (x86_64) using readline 6.3

1 个答案:

答案 0 :(得分:0)

这是一个带有反引号的示例:

CREATE TABLE `r` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `release` DATE NOT NULL DEFAULT '9999-01-01',
  `comment` VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1234567892 DEFAULT CHARSET=utf8;