
初心者ですが、よろしくお願いします。
Mysqlでテーブルを作成して、カラムにDATE型を指定するとDEFAULT値が設定できません、、、。
これはMysqlの仕様なのでしょうか?
ちなみに、TIMESTAMP型だと、'DEFAULT CURRENT_TIMESTAMP'でDEFAULT設定できます、、。
-- クエリ
CREATE TABLE test (
column_name DATE NOT NULL DEFAULT CURRENT_DATE
);
>> エラー
ERROR 1064 (42000): 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 'CURRENT_DATE)' at line 1
Mysql::ABも調べたのですが、よく分かりませんでした。
よろしくお願いします。
MySQLバージョン 5.0.41
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
MySQLのマニュアルに、記載があります。
CURRENT_DATE等を、DEFAULTに設定することはできません。
TIMESTAMP型に関しては、MySQLが自動的に日時を設定する特別なデータ型なので、指定があってもsyntaxエラーにしていないのでしょう。
「DEFAULT 値は定数でなければならず、関数や式を使用することはできない。
DEFAULT 値が指定されていない場合、そのカラムには、次の方法で、MySQL によって DEFAULT 値が自動的に割り当てられる。
値として NULL を取れるカラムの場合、デフォルト値は NULL になる。
NOT NULL として宣言されているカラムの場合、デフォルト値はそれぞれのカラム型によって決まる。
AUTO_INCREMENT 属性を持つと宣言されていない数値型カラムの場合、デフォルトは 0。AUTO_INCREMENT カラムの場合、デフォルト値は連続値の次の値になる。
TIMESTAMP 型以外の日付と時刻型の場合、デフォルトはその型に対応するゼロ値。テーブル内の最初の TIMESTAMP 型カラムのデフォルト値は、現在の日時になる。 See 項6.2.2. 「日付と時刻型」。
ENUM 型以外の文字列型の場合、デフォルト値は空の文字列。ENUM の場合、デフォルト値は最初の列挙値になる。
デフォルト値は定数でなければならない。したがって、日付カラムのデフォルト値として、NOW() や CURRENT_DATE などの関数を設定することはできない。 」
参考URL:http://dev.mysql.com/doc/refman/4.1/ja/create-ta …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構造が異なる二つのテーブルをu...
-
カラムとコラムの使い分け
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
AUTO_INCREMENTに0はダメ?
-
GREATESTで NULLをスルーする方...
-
now()かCURRENT_TIMESTAMPか
-
ROUND関数で、四捨五入ができな...
-
ドロップダウンリストの連動し...
-
MySQL(5.5)1テーブル内のカラ...
-
【SQL】select に ワイルドカー...
-
MYSQLで全てのカラムから検索す...
-
カラムをコピーして、新規カラ...
-
SQLで、行ごとのとある要素を比...
-
INDIRECT関数の代替方法は?
-
DBの定義のサイズを大きくし過...
-
他のシートの検索
-
インデックスについて
-
type date にnullをinsert
-
Accessで複数(3以上)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一部のカラムでdistinctし全て...
-
SELECT文で、指定カラム以外の...
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
AUTO_INCREMENTに0はダメ?
-
SQLでカラムを追加し、条件に合...
-
now()かCURRENT_TIMESTAMPか
-
カラムとコラムの使い分け
-
(初心者)MySQLやmaraDBで、crea...
-
GREATESTで NULLをスルーする方...
-
構造が異なる二つのテーブルをu...
-
sql , insert で空行(全ての列...
-
MYSQLで全てのカラムから検索す...
-
エクセルかワードで家系図を作...
-
Excel VBA
-
カラムをコピーして、新規カラ...
-
Mysql DATE型のDEFAULT値
-
ドロップダウンリストの連動し...
-
MySQLで論理名を取得する方法
-
MySQL(5.5)1テーブル内のカラ...
おすすめ情報