
初心者ですが、よろしくお願いします。
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で質問しましょう!
似たような質問が見つかりました
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- 公認会計士・税理士 会計学初心者です。 xeroという会計ソフトを実際に使用して決算整理仕訳?を行うという課題が出ました 1 2022/10/07 14:57
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
ホームページを作ろうと思いま...
-
SQLでカラムを追加し、条件に合...
-
一部のカラムでdistinctし全て...
-
now()かCURRENT_TIMESTAMPか
-
AUTO_INCREMENTに0はダメ?
-
MYSQLで全てのカラムから検索す...
-
値が 18446744073709551615 ...
-
UNIONする際、片方テーブルしか...
-
Select文で結合した時に、重複...
-
カラムとコラムの使い分け
-
【SQL】select に ワイルドカー...
-
文字列のカラムを数字と比較したい
-
SQLについて教えて下さい。 SEL...
-
MySQLで論理名を取得する方法
-
Mysql DATE型のDEFAULT値
-
カラムをコピーして、新規カラ...
-
日付を一括UPDATE
-
MySQLで先頭にカラムを追加
-
SQLです!!教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
UNIONする際、片方テーブルしか...
-
MYSQLで全てのカラムから検索す...
-
GREATESTで NULLをスルーする方...
-
SQLでカラムを追加し、条件に合...
-
AUTO_INCREMENTに0はダメ?
-
now()かCURRENT_TIMESTAMPか
-
ドロップダウンリストの連動し...
-
カラムをコピーして、新規カラ...
-
MySQLで論理名を取得する方法
-
カラムとコラムの使い分け
-
sql , insert で空行(全ての列...
-
MySQLで先頭にカラムを追加
-
ROUND関数で、四捨五入ができな...
-
DBエラーの意味
-
【SQL】select に ワイルドカー...
-
頭に0が付く文字
-
Select文で結合した時に、重複...
-
日付を一括UPDATE
おすすめ情報