我想在mysql表中将我的id设置为默认值'000001'或'TodaysDate后跟000001'..同样也应该是auto_incremented。 我们怎么能这样做?
以及如何在TIMESTAMP列中设置默认值而不是使用'CURRENT_TIMESTAMP' 例如'2012-04-01',当更新触发器触发时,它应该在今天的日期更新。
怎么做?
答案 0 :(得分:0)
看起来您回答了自己的问题:具体来说,您需要一个'插入/更新'触发器,为您设置值。
在插入test1之前创建TRIGGER my_autoinc
对于每行开始
INSERT INTO test1 SET NEW.id_column = concat(today(),< some value>);
结束;
答案 1 :(得分:0)
如果我是你,我会像id int,auto increment一样离开它,当选择我将使用lpad函数时:
mysql> select lpad('1',6,'0');
+-----------------+
| lpad('1',6,'0') |
+-----------------+
| 000001 |
+-----------------+
1 row in set (0.00 sec)
关于时间戳我会让别人回答,因为我在想的是做同样的事情,使用current_timestamp和mysql函数转换为你想要的方式:
mysql> select left(now(),10);
+----------------+
| left(now(),10) |
+----------------+
| 2012-06-01 |
+----------------+
1 row in set (0.00 sec)'
修改强>
mysql> select concat(replace(left(now(),10),'-',''),lpad('1',6,'0'));
+--------------------------------------------------------+
| concat(replace(left(now(),10),'-',''),lpad('1',6,'0')) |
+--------------------------------------------------------+
| 20120601000001 |
+--------------------------------------------------------+
1 row in set (0.00 sec)