我想知道以下是否可以通过MySQL进行,或者是否必须使用PHP完成.
任务 – “到期日”
>用户输入产品名称
>用户单击提交表单按钮
>数据被POST,然后发送到MysqL
>有效期=现在14天
我想要实现的是MysqL在表列中插入“expiry_date”的方法,该表将在该表中创建行的日期之后等于14天.
例如
product_name - foo
entry_date - 2012-02-01
expiry_date - 2012-02-15
我有一种感觉,除非使用存储过程,否则可能无法在MysqL中执行.
我很高兴用PHP做到这一点,但我希望如果我能用MysqL做它,它会在我的系统中留下更少的错误范围.
谢谢
解决方法:
创建一个表并为该表设置触发器.
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);
在每次插入表中时,触发器将entryDate设置为当前时间并将expDate设置为14天时间.