Установка формата AUTO_INCREMENT как «дата / номер» - PullRequest
3 голосов
/ 01 июня 2011

это мой первый вопрос здесь, поэтому, пожалуйста, прости меня за любые ошибки .....

Что я хочу сделать, это установить опцию Auto_increment в базе данных MySQL, чтобы он начинал считать с определенного формата, такогокак:

дата / номер

для образца: 2011-06-01 / 0001, 2011-06-01 / 0002,.,,2011-06-02 / 0001, 2011-06-02 / 0002

        ...and so on

надеюсь, я проясню свою проблему, и заранее спасибо .........

Ответы [ 3 ]

0 голосов
/ 01 июня 2011

Попробуйте создать таблицу таким образом

create table test (
id int(4) zerofill auto_increment,
mydate date,
primary key (mydate,id)
);

insert into test (mydate) 
values 
('2011-06-01'),
('2011-06-02'),
('2011-06-02'),
('2011-06-01'),
('2011-06-01'),
('2011-06-03');



mysql> select * from test;
+------+------------+
| id   | mydate     |
+------+------------+
| 0001 | 2011-06-01 |
| 0002 | 2011-06-01 |
| 0003 | 2011-06-01 |
| 0001 | 2011-06-02 |
| 0002 | 2011-06-02 |
| 0001 | 2011-06-03 |
+------+------------+
6 rows in set (0.00 sec)
0 голосов
/ 01 июня 2011

Метка времени с поддержкой микросекунд?например

CREATE table t (
    f1 TIMESTAMP(6) DEFAULT CURRENT_DATETIME
);

и пронумерованный ряд:

SET @rownum : = 0
SELECT @rownum := @rownum + 1 AS num, t.*
  FROM t
 WHERE DATE(t.f1) = '2011-01-01'
0 голосов
/ 01 июня 2011

Я уверен, что это невозможно. Однако вы можете эмулировать его, используя триггер INSERT. У меня сейчас нет доступа к MySQL, но, надеюсь, это даст вам представление о том, как это сделать. Если у меня будет время, возможно, я соберу пример кода для вас.

...