如何根据此示例创建自动增量字段:
我有这个表格,带有“AF”字段,格式为:SN.MM.YYYY “SN”=基于最后一次插入的AI编号,MM = Atual Month,YYYY = Atual Year。
| ID | AF |
____________________
| 1 | 01.10.2013 |
| 2 | 02.10.2013 |
因此,当更改月份或年份时,触发器必须设置“AF”字段: 例如:月份更改为11月(将SN重置为01)。
| 3 | 01.11.2013 |
| 4 | 02.11.2013 |
当年份改变时(将SN重置为01):
| 5 | 01.01.2014 |
| 6 | 02.01.2014 |
| 7 | 03.01.2014 |
任何人都知道如何设置触发器?
Obs:一天内可能有多条记录,因此,日期并不重要。
抱歉英文不好
谢谢你们!
答案 0 :(得分:1)
从技术上讲,你可以做这样的事情
CREATE TRIGGER tg_bi_table1
BEFORE INSERT ON table1
FOR EACH ROW
SET NEW.af = CONCAT(
LPAD(COALESCE(
(SELECT MAX(LEFT(af, 2))
FROM table1
WHERE af LIKE DATE_FORMAT(CURDATE(), '__.%m.%Y')), 0) + 1, 2, '0'),
DATE_FORMAT(CURDATE(), '.%m.%Y'));
这是 SQLFiddle 演示
注意:这种方法(使用这种模式创建自己的before_increment值)有两个主要缺点: