Autoincrement Wert setzen
Raffi
- php
Hallo Leute
Gibt es eine Möglichkeit von PHP aus den Autoincrement Wert einer Tabelle zu verändern.
z.B. PHP sagt der DB das der Autoincrement wert 1000 ist
Nächster eingefügter Datensatz ist dann automatisch 1001.
Danke und Gruss aus der Schweiz
Raffi
Hallo Raffi,
hat mit PHP kaum etwas zu tun, ich unterstelle mal, du meinst mySQL.
Dann solltest Du die IDs und deren autoincrement auf keinen Fall beeinflussen:
http://www.dclp-faq.de/q/q-sql-ids.html (Zitat: "Deshalb: Finger weg von den IDs!")
http://www.dclp-faq.de/q/q-mysql-inkrement.html
Gruß, Thoralf
Ja ich meine genau das.
Aber die DB soll alle 24 Stunden alle Datensätze "verlieren" die grösser als 3 sind. Daher will ich den Autoincrement Wert auf 4 setzten, damit dort fortgefahren wird. In PHPMyAdmin kann man den ja auch verstellen.
Es muss doch ein MySQL Befehlt geben um diesen zu setzen?
Danke und gruss
Wäre das die Lösung?
ALTER TABLE tabellenname
AUTO_INCREMENT = 8
Gruss
Raffi
Hallo Raffi,
Wäre das die Lösung?
ALTER TABLEtabellenname
AUTO_INCREMENT = 8
Nein, dieses "Lass die Finger von IDs" ist ernst gemeint. Die Dinger sind (auch) für _interne_ Referenzen und haben nur _einen_ Zweck: Den Datensatz eindeutig zu kennzeichnen. Führe einfach eine weitere Spalte ein, nach der Du die Datensätze löschst und bei denen Du dann auch die Werte ändern kannst. Alles andere führt zu Inkosistenzen in der DB und früher oder später zu Datenverlust oder Bissspuren an der Tastatur. ;)
Gruß, Thoralf
Aber die DB soll alle 24 Stunden alle Datensätze "verlieren" die grösser als 3 sind. Daher will ich den Autoincrement Wert auf 4 setzten, damit dort fortgefahren wird. In PHPMyAdmin kann man den ja auch verstellen.
... wo ist denn diese weisheit her? ... die db 'verliert' keine daten! ... und schon gar nicht nach 24 stunden, egal ob die datesätze<3 sin
Ich lösche mittels einem Cronjob die Daten alle 24 Stunden. Das muss so sein ;-)
Hallo Leute
Gibt es eine Möglichkeit von PHP aus den Autoincrement Wert einer Tabelle zu verändern.
z.B. PHP sagt der DB das der Autoincrement wert 1000 ist
Nächster eingefügter Datensatz ist dann automatisch 1001.Danke und Gruss aus der Schweiz
Raffi
hi!
was willst du damit machen? create table wäre der richtige befehl mit dem du eine tabelle anlegst in mysql, ein autoinkrement dürfte kein problem sein, wenn du die rows mit einer for-schleife machst, hast auch pro zeile eine ID.
aber: was meinst genau damit?
z.B. PHP sagt der DB das der Autoincrement wert 1000 ist
Nächster eingefügter Datensatz ist dann automatisch 1001.
ich gebe dir einen code mit autoinkrement + forschleife:
<?require '../connect.php';
sql = "CREATE TABLE top(
ID INT AUTO_INCREMENT PRIMARY KEY,
text TEXT,
Datum VARCHAR(10)
);";
if(mysql_query($sql))
{
echo("<br><br><br><br>Die Tabelle für den TopFrame wurde erstellt\n</b>");
}
else
{
echo("Konnte die Tabelle nicht anlegen. Grund: ".mysql_error()."\n");
}
for($i = 0; $i < 300; $i++ ) {
mysql_query("INSERT INTO top(ID) VALUES ($i)");
}?>
... vielleicht hilfts ;-)
Also...ich möchte folgendes machen:
Wenn die Tabelle bereits existiert und eine Autoincrement Spalte enthält, die MySQL bei jedem Datensatz automatisch um eins erhöht, möchte ich nun einfach den Autoincrement Wert für MySQL setzen, wo dann mySQL weiterzählt.
Die kann z.B. vorkommen, wenn ich eine leere Tabelle erstelle und MySQL mit dem Autoincrement Wert nicht bei 1 sondern bei 1000 beginnen soll.