2010-12-08 5 views
0

beginne ich eine neue Tabelle von Grund durch scripting Schaffung - erste, ich es fallen (falls es bereits vorhanden ist):MySQL Problem: autoID nicht mit 1

DROP TABLE IF EXISTS `myTable` 

dann Ich schaffe es:

CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
... and so on 

Das Problem: aus irgendeinem seltsamen Grund, meine autoID-field ALWAYS starts at 2028 instead of 1, obwohl ich es von Grund auf neu bin zu erzeugen. Was ist falsch?

+0

Nicht sicher über die Antwort, aber Sie müssen nicht überprüfen, ob die Tabelle existiert, wenn Sie es vor dem Befehl ablegen. Es wird immer wahr sein. Wickeln Sie stattdessen die Drop-Tabelle Teil, wenn ein If wie Sie den Tropfen nicht fallen lassen kann, wenn es nicht existiert und zu versuchen, einen Fehler auszulösen. –

+0

Spielt es wirklich eine Rolle, an welchem ​​Wert die ID überhaupt beginnt? – Tenner

Antwort

4

Sehen Sie sich das Ende des Erstellungsblocks an. Sie haben wahrscheinlich etwas wie AUTO_INCREMENT=2028. Wenn dies der Fall ist, setzen Sie einfach AUTO_INCREMENT=1 am Ende der Tabellenblock

wie

CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
... 
) ENGINE=xxx AUTO_INCREMENT=1; 
1
CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
PRIMARY KEY (id)); 

Bitte fügen Sie erstellen Primärschlüssel

0

Sie können sie aktualisieren, indem die Tabelle zu verändern

ALTER TABLE <tablename> AUTO_INCREMENT = 1;