MySQL默认日期()+ 14天,一列?

tom*_*ato 4 php mysql date default-value

我想知道以下是否可以通过MySQL进行,或者是否必须使用PHP完成.

任务 - "到期日"

  1. 用户输入产品名称
  2. 用户单击提交表单按钮
  3. 数据被POST,然后发送到MySQL
  4. 到期日=现在日期+ 14天

我想要实现的是mysql在表列中插入"expiry_date"的方法,该表将在该表中创建行的日期之后等于14天.

例如

product_name - foo
entry_date - 2012-02-01
expiry_date - 2012-02-15
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,除非使用存储过程,否则可能无法在mysql中执行.

我很高兴用PHP做到这一点,但我希望如果我能用mysql做它,它会在我的系统中留下更少的错误范围.

谢谢

Nav*_*mar 8

创建一个表并为该表设置触发器.

CREATE TABLE product(
    product_id INT PRIMARY KEY,
    product VARCHAR(40),
    entryDate DATETIME,
    expDate DATETIME
);

CREATE TRIGGER test_trigger BEFORE INSERT ON `product` 
FOR EACH ROW SET
    NEW.entryDate = IFNULL(NEW.entryDate, NOW()),
    NEW.expDate = TIMESTAMPADD(DAY, 14, NEW.entryDate);
Run Code Online (Sandbox Code Playgroud)

在每个插入表中,触发器设置entryDate为当前时间和expDate14天时间.