我想知道以下是否可以通过 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 天时间。
关于php - MySQL 默认 date() + 14 天,对于一个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9190758/