0

mysqlテーブルのIDをデフォルト値の「000001」または「TodaysDateの後に000001」に設定したいのですが、同じようにauto_incrementedする必要があります。どうすればこれを行うことができますか?

また、「2012-04-01」などの「CURRENT_TIMESTAMP」を使用せずにTIMESTAMP列にデフォルト値を設定する方法、および更新トリガーが起動すると、今日の日付で更新される必要があります。

これを行う方法?

4

2 に答える 2

0

自分の質問に答えたようです。具体的には、値を設定する「挿入/更新前」トリガーが必要です。

CREATE TRIGGER my_autoinc BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test1 SET NEW.id_column = concat(today()、<some value>);
終わり;

于 2012-06-01T12:49:17.507 に答える
0
  • mysqlテーブルのIDをデフォルト値「000001」に設定したいと思います。

私があなただった場合は、id int、自動インクリメントのように残し、選択を行うときに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)
于 2012-06-01T12:50:15.883 に答える