NOW()、10分でデフォルト時間に追加できますか?MySQLの日時デフォルトの時間間隔
することは、私はそのようなものを試してみた:
CREATE TABLE `table1` (
`date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);
しかし、それは動作しません。
NOW()、10分でデフォルト時間に追加できますか?MySQLの日時デフォルトの時間間隔
することは、私はそのようなものを試してみた:
CREATE TABLE `table1` (
`date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);
しかし、それは動作しません。
私はあなたがこれを行うことができるとは思わない。データ型指定のデフォルト値句は、カラムの デフォルト値を示し
:
MySQL Documentation状態となります。 1つの例外を除き、デフォルト値は でなければなりません。関数または式にすることはできません。つまり、 の場合、NOW()やCURRENT_DATEなどの関数の値である に日付列のデフォルトを設定することはできません。例外 はあなたがしかし、これを達成するために、挿入トリガを使用することができ TIMESTAMP列
のデフォルトとして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;
使用(#1064 - あなたはあなたのSQL構文に誤りがあります;あなたのMySQLサーバのバージョンに対応するマニュアルを調べて正しい構文が行末にあることを確認してください) – loop
Mysql 5.1でテストしました。また、NULLを許可するように表を変更し、デフォルトをnullに設定する必要があります。 – Inca
私はすでにデフォルト値をNULLに設定しており、NULLを許可しています。バージョンは5.5.13です。 – loop