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