2016-03-18 23 views
2

DATE属性がreleaseのテーブルを作成しようとしています。DATE属性を既定の固定日付に設定する

私はいくつかの固定日付(特に9999-12-31)にこの日付をデフォルトにしたいが、私は次のメソッドを使用して、SQL構文エラーを取得:

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

どのように私がやった少し検索は私だけを示しています現在の日付または何らかの動的な日付のデフォルトに設定されていますが、既定の日付に設定する方法を探しています。

EDIT詳細:

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 --versionは出力を生成する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 

mysql Ver 14.14 Distrib 5.5.47, for debian-linux-gnu (x86_64) using readline 6.3

+0

この作品 - 'release'日NOT NULL DEFAULT '9999-12-31'、なるほど、それは私のために、より詳細でいずれか何らかの理由で(同じエラー)の編集ポストを働いていない –

+0

@BerndBuffen .. 。 –

+1

申し訳ありませんが、私はそれを参照してください。コメントでは、Backticksが表示されません。 feldnameをバッククォートに入れなければなりません。リリースはキーワードです。フィールド名として使用する場合は、バックスティックで引用する必要があります。 –

答えて

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; 
+0

興味深いことに、あなたはすべての属性についてバックティックを使っています...この標準的な練習ですか?そしてもし気にしなければ、最後には 'ENGINE = ...'宣言の背後にある推論は何ですか? –

+0

最初に、エンジンタイプMyISAM、InnoDB、...、オートインクリメントフィールドの開始IDと使用される文字セットを選択できます。通常のauto_incrementは1ですが、多くの行を持つ古いテーブルからコピーしました –

関連する問題