2012-03-15 12 views
4

カラムのデフォルト値を有効期限(何時間からもCURRENT_TIMESTAMP)に設定する方法はありますか?TIMESTAMPカラムのデフォルト値としての有効期限

私はすでに試してみました:

ALTER TABLE `table` 
ADD COLUMN `expire` TIMESTAMP NOT NULL DEFAULT TIMESTAMPADD(HOUR, 5, CURRENT_TIMESTAMP); 

しかし、うまくいきませんでしたが...

+2

'TIMESTAMP'と' DATETIME'列が関数によって計算された値にCURRENT_TIMESTAMP' 'をデフォルトとすることはできませんが、。ベストベットは、Ikeの例のようなトリガーです。 –

答えて

6

をあなたは、テーブル定義でそのような複雑なデフォルト値を実装することはできません。

は、あなたがしたい場合は、トリガーでそれを行うことができます。

DELIMITER $$ 

DROP TRIGGER IF EXISTS tr_b_ins_table $$ 

CREATE TRIGGER tr_b_ins_table BEFORE INSERT ON table FOR EACH ROW BEGIN 
    SET NEW.expire = NOW() + INTERVAL 5 HOUR; 
END $$ 

DELIMITER ; 
関連する問題