2011-08-11 58 views
2

NOW()、10分でデフォルト時間に追加できますか?MySQLの日時デフォルトの時間間隔

することは、私はそのようなものを試してみた:

CREATE TABLE `table1` (
    `date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE) 
); 

しかし、それは動作しません。

答えて

4

私はあなたがこれを行うことができるとは思わない。データ型指定のデフォルト値句は、カラムの デフォルト値を示し

MySQL Documentation状態となります。 1つの例外を除き、デフォルト値は でなければなりません。関数または式にすることはできません。つまり、 の場合、NOW()やCURRENT_DATEなどの関数の値である に日付列のデフォルトを設定することはできません。例外 はあなたがしかし、これを達成するために、挿入トリガを使用することができ TIMESTAMP列

2

のデフォルトとしてCURRENT_TIMESTAMPを指定することができるということです。 **; ** SET new.`date` = DATE_ADD(NOW()、INTERVAL 10 MINUTE):nullに '日付' 列のデフォルトを設定し、それは5行目で私にエラーを示し

CREATE TRIGGER settime 
BEFORE INSERT on table1 
FOR EACH ROW BEGIN 
    IF new.`date` is null THEN 
     SET new.`date` = DATE_ADD(NOW(), INTERVAL 10 MINUTE); 
    END IF; 
END; 
+0

使用(#1064 - あなたはあなたのSQL構文に誤りがあります;あなたのMySQLサーバのバージョンに対応するマニュアルを調べて正しい構文が行末にあることを確認してください) – loop

+0

Mysql 5.1でテストしました。また、NULLを許可するように表を変更し、デフォルトをnullに設定する必要があります。 – Inca

+0

私はすでにデフォルト値をNULLに設定しており、NULLを許可しています。バージョンは5.5.13です。 – loop

関連する問題