在mysql id和timestamp列中设置默认值?

时间:2012-06-01 12:35:24

标签: mysql

我想在mysql表中将我的id设置为默认值'000001'或'TodaysDate后跟000001'..同样也应该是auto_incremented。 我们怎么能这样做?

以及如何在TIMESTAMP列中设置默认值而不是使用'CURRENT_TIMESTAMP' 例如'2012-04-01',当更新触发器触发时,它应该在今天的日期更新。

怎么做?

2 个答案:

答案 0 :(得分:0)

看起来您回答了自己的问题:具体来说,您需要一个'插入/更新'触发器,为您设置值。

  

在插入test1之前创建TRIGGER my_autoinc
    对于每行开始
      INSERT INTO test1 SET NEW.id_column = concat(today(),< some value>);
    结束;

答案 1 :(得分:0)

  • 我想在mysql表中将我的id设置为默认值'000001'。

如果我是你,我会像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)