3 Stimmen

Einstellung des AUTO_INCREMENT-Formats als "Datum/Nummer"

Dies ist meine erste Frage hier, also bitte verzeihen Sie mir eventuelle Fehler.....

Was ich tun möchte, ist die Option Auto_increment in der MySQL-Datenbank zu setzen, so dass es beginnt, von bestimmten Format wie zu zählen:

Datum/Nummer

zum Beispiel: 2 2011-06-01/0002 , . [ ] . 2011-06-02/0001 , 2011-06-02/0002

        ...and so on

Ich hoffe, ich habe mein Problem klar gemacht, und danke im Voraus.........

0voto

King Skippus Punkte 3701

Ich bin mir ziemlich sicher, dass das nicht möglich ist. Sie können es jedoch mit einem INSERT-Trigger emulieren. Ich habe im Moment keinen Zugang zu MySQL, aber ich hoffe, das gibt Ihnen eine Vorstellung davon, wie man es machen kann. Wenn ich später Zeit habe, werde ich vielleicht einen Beispielcode für Sie zusammenstellen.

0voto

Nicola Cossu Punkte 52389

Versuchen Sie, eine Tabelle auf diese Weise zu erstellen

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)

0voto

Pablo Castellazzi Punkte 4114

Ein Zeitstempel mit Mikrosekunden-Unterstützung? wie

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

und eine Zeile mit einer Nummer auswählen:

SET @rownum : = 0
SELECT @rownum := @rownum + 1 AS num, t.*
  FROM t
 WHERE DATE(t.f1) = '2011-01-01'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X