0

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

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

这个怎么做?

4

2 回答 2

0

看起来您回答了自己的问题:特别是您想要一个“插入/更新之前”触发器来为您设置值。

CREATE TRIGGER my_autoinc BEFORE INSERT ON test1
FOR EACH BEGIN
INSERT INTO test1 SET NEW.id_column = concat(today(), <some value>);
结尾;

于 2012-06-01T12:49:17.507 回答
0
  • 我想将我在 mysql 表中的 id 设置为默认值,比如“000001”。

If I were you I will leave it like id int, auto increment and when make the select I'll use the lpad function:

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)
于 2012-06-01T12:50:15.883 回答