Frage über AUTO_INCREMENT=Wert.
Frage über AUTO_INCREMENT=Wert.
am 16.01.2006 15:38:23 von Zsolt Koppany
Hallo,
aus technischen Gründen erstelle ich die mysql Tabellen aus einem Script mit
mysqld:
mysqld --bootstrap --skip-grant-tables --basedir=${repository}
--datadir=${repository}/data
--skip-bdb"
--character-set-server=utf8"
--default-storage-engine=InnoDB" < INPUT-FILE
CREATE TABLE tbl (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
....
) AUTO_INCREMENT=1000;
Die erstellten Dateien kopiere ich dann manuell in das mysql Verzeichnis.
Dann kommt ein INSERT INTO tbl ...
und da wird "id" 1 und nicht 1000. Hat jemand eine Idee?
Ich benutze mysql-4.1.16-win32.
Zsolt
Re: Frage über AUTO_INCREMENT=Wert.
am 16.01.2006 17:30:27 von Dirk Brosowski
Zsolt Koppany schrieb:
> Hallo,
>
>
>
> aus technischen Gründen erstelle ich die mysql Tabellen aus einem Script mit
> mysqld:
>
>
>
> mysqld --bootstrap --skip-grant-tables --basedir=${repository}
>
> --datadir=${repository}/data
>
> --skip-bdb"
>
> --character-set-server=utf8"
>
> --default-storage-engine=InnoDB" < INPUT-FILE
>
>
>
> CREATE TABLE tbl (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
>
> ...
>
> ) AUTO_INCREMENT=1000;
>
>
>
> Die erstellten Dateien kopiere ich dann manuell in das mysql Verzeichnis.
>
>
>
> Dann kommt ein INSERT INTO tbl ...
>
> und da wird "id" 1 und nicht 1000. Hat jemand eine Idee?
Über das was du da machst denke ich mal besser nicht nach (dafür kann es
keine Erklärung geben), aber was sagt denn der table status bevor du das
Insert machst aus? Hast du bei deinem rumkopieren auch beachtet, den
Server hoch- und runterzufahren? Hast du vor dem Insert mal ein Select
gemacht? Ich bezweifele nämlich stark, dass in der Tabelle wirklich
etwas vorhanden ist.
Greetings
Dirk
Re: Frage über AUTO_INCREMENT=Wert.
am 16.01.2006 18:10:51 von Axel Schwenke
Dirk Brosowski wrote:
> Zsolt Koppany schrieb:
>> aus technischen Gründen
LOL
[ gesnipt ]
> Über das was du da machst denke ich mal besser nicht nach (dafür kann es
> keine Erklärung geben),
Zsolt ist ja hier auch kein unbeschriebenes Blatt.
> aber was sagt denn der table status bevor du das
> Insert machst aus? Hast du bei deinem rumkopieren auch beachtet, den
> Server hoch- und runterzufahren? Hast du vor dem Insert mal ein Select
> gemacht? Ich bezweifele nämlich stark, dass in der Tabelle wirklich
> etwas vorhanden ist.
Das ist nicht das Problem. Tatsächlich funktioniert das, was Zsolt
vorhat, so wie er das macht, nicht. Ersten Absatz lesen:
http://dev.mysql.com/doc/refman/5.0/en/innodb-auto-increment -column.html
Allerdings könnte man
1. unmittelbar vor dem ersten INSERT ein
ALTER TABLE ... AUTO_INCREMENT=...
absetzen. Oder
2. bei den initialen Daten die gewünschen IDs explizit angeben
XL
Re: Frage über AUTO_INCREMENT=Wert.
am 16.01.2006 18:45:25 von Zsolt Koppany
"Axel Schwenke" schrieb im Newsbeitrag
news:r2kgqd.a0k.ln@idefix.xl.local...
> Dirk Brosowski wrote:
>> Zsolt Koppany schrieb:
>
>>> aus technischen Gründen
>
> LOL
>
> [ gesnipt ]
>
>> Über das was du da machst denke ich mal besser nicht nach (dafür kann es
>> keine Erklärung geben),
>
>
> Zsolt ist ja hier auch kein unbeschriebenes Blatt.
Ist das gut oder schleckt für mich?
Danke Axel, für deine Antwort.
Das Link was du geschrieben hast beschreibt genau mein Problem.
Zsolt
Danke Axel, für deine Antwort, das Link was du geschrieben hast beschreibt
>
>> aber was sagt denn der table status bevor du das
>> Insert machst aus? Hast du bei deinem rumkopieren auch beachtet, den
>> Server hoch- und runterzufahren? Hast du vor dem Insert mal ein Select
>> gemacht? Ich bezweifele nämlich stark, dass in der Tabelle wirklich
>> etwas vorhanden ist.
>
> Das ist nicht das Problem. Tatsächlich funktioniert das, was Zsolt
> vorhat, so wie er das macht, nicht. Ersten Absatz lesen:
>
> http://dev.mysql.com/doc/refman/5.0/en/innodb-auto-increment -column.html
>
> Allerdings könnte man
>
> 1. unmittelbar vor dem ersten INSERT ein
> ALTER TABLE ... AUTO_INCREMENT=...
> absetzen. Oder
>
> 2. bei den initialen Daten die gewünschen IDs explizit angeben
>
>
> XL
Re: Frage über AUTO_INCREMENT=Wert.
am 16.01.2006 20:08:39 von Dirk Brosowski
Axel Schwenke schrieb:
> Dirk Brosowski wrote:
>
>>Zsolt Koppany schrieb:
>
>
>>>aus technischen Gründen
>
>
> LOL
>
> [ gesnipt ]
>
>
>>Über das was du da machst denke ich mal besser nicht nach (dafür kann es
>>keine Erklärung geben),
>
>
>
> Zsolt ist ja hier auch kein unbeschriebenes Blatt.
>
>
>>aber was sagt denn der table status bevor du das
>>Insert machst aus? Hast du bei deinem rumkopieren auch beachtet, den
>>Server hoch- und runterzufahren? Hast du vor dem Insert mal ein Select
>>gemacht? Ich bezweifele nämlich stark, dass in der Tabelle wirklich
>>etwas vorhanden ist.
>
>
> Das ist nicht das Problem. Tatsächlich funktioniert das, was Zsolt
> vorhat, so wie er das macht, nicht. Ersten Absatz lesen:
>
> http://dev.mysql.com/doc/refman/5.0/en/innodb-auto-increment -column.html
>
> Allerdings könnte man
>
> 1. unmittelbar vor dem ersten INSERT ein
> ALTER TABLE ... AUTO_INCREMENT=...
> absetzen. Oder
>
> 2. bei den initialen Daten die gewünschen IDs explizit angeben
Lt. Doku müsste MySQL doch "SELECT MAX(ai_col) FROM T FOR UPDATE;"
absetzen, und zwar vor dem ersten Insert nach dem hochfahren der
Datenbank. Wobei ich zugebe, dass ich InnoDB überlesen habe, da finde
ich dann das "ich kopiere in das Verzeichniss" vollkommen hohl. Aber
wenn er so bekannt ist, werde ich mir mal ein Killfile anlegen *lach*,
meine Lachmuskeln müssen nicht zuviel arbeiten ...
Greetings
Dirk