mysql: Eintrag ändern
Simon Riedl
- datenbank
0 Kess0 André Laugks
Hallo!
Ich hätte mal zwei Fragen zu mysql:
Ich möchte einen vorhandenen Datensatz ändern.
Natürlich könnte ich den Eintrag erst löschen und dann wieder einen neuen hinzufügen - das möchte ich aber nicht.
Ich bin leider nicht fündig geworden in meinen php-Buch, vielleicht kann mir jemand die Syntax sagen, die der entsprechende Befehl hat?
Und die zweite Frage:
Meine Tabelle hat eine id-Spalte mit auto_increment und primary key. Wenn ich aus dieser Tabelle einen Eintrag lösche, ist dann sozusagen eine Lücke in der Nummernfolge? Und bleibt diese Lücke auch, wenn ich danach einen neuen Eintrag hinzufüge, oder wird diese Nummernlücke dann ausgefüllt?
Danke für eure Hilfe.
Simon
Hallo Simon,
Ich möchte einen vorhandenen Datensatz ändern.
Natürlich könnte ich den Eintrag erst löschen und dann wieder einen neuen hinzufügen - das möchte ich aber nicht.
benutze:
UPDATE tablle
SET spalte1 = wert1
, spalte2 = wert2
, ...
WHERE id = ...
Meine Tabelle hat eine id-Spalte mit auto_increment und primary key. Wenn ich aus dieser Tabelle einen Eintrag lösche, ist dann sozusagen eine Lücke in der Nummernfolge? Und bleibt diese Lücke auch, wenn ich danach einen neuen Eintrag hinzufüge, oder wird diese Nummernlücke dann ausgefüllt?
die Luecke bleibt, es sei denn, du fuellst sie selbst.
Viele Gruesse
Kess
benutze:
UPDATE tablle
SET spalte1 = wert1
, spalte2 = wert2
, ...
WHERE id = ...
Danke!
Simon
Hallo!
Und die zweite Frage:
Meine Tabelle hat eine id-Spalte mit auto_increment und primary key. Wenn ich aus dieser Tabelle einen Eintrag lösche, ist dann sozusagen eine Lücke in der Nummernfolge?
Ja! Aber das ist eigentlich egal! Du hast den Datensatz, z.B. mit der id=10 gelöscht. Du hast diesen Datensatz also nicht mehr benötigt. Die id's Deiner Tabellen sollten Dir eigentlich egal sein. mySQL kümmert sich um die richtige Vergabe, was Du mySQL mit AUTO_INCREMENT ja gesagt hast.
Löse Dich von diesem Ordnungsprinzip, das keine Zahl/ID fehlen darf. Deine Scripte sollten wohl so geschrieben sein, daß es egal ist welche id's in der Tabelle vorkommen.
Und bleibt diese Lücke auch, wenn ich danach einen neuen Eintrag hinzufüge, oder wird diese Nummernlücke dann ausgefüllt?
IMHO Nein. mySQL kümmert sich um das Füllen der Lücken. Nicht mit der selben bzw. gelöschten id, aber mit einer neuen.
SELECT * FROM name;
id name
1 André
2 Laugks
3 Simone
4 Riedl
DELETE FROM name WHERE id=2;
SELECT * FROM name;
1 André
3 Simone
4 Riedl
INSERT INTO namen (name) VALUES ('Kess');
SELECT * FROM name;
1 André
5 Kess
3 Simone
4 Riedl
So sieht es auf der Shell aus. Die id's sind nicht in der Reihenfolge, aber das kannst Du ja mit SQL-Sortieroptionen lösen.
MfG, André Laugks
Ja! Aber das ist eigentlich egal! Du hast den Datensatz, z.B. mit der id=10 gelöscht. Du hast diesen Datensatz also nicht mehr benötigt. Die id's Deiner Tabellen sollten Dir eigentlich egal sein. mySQL kümmert sich um die richtige Vergabe, was Du mySQL mit AUTO_INCREMENT ja gesagt hast.
IMHO Nein. mySQL kümmert sich um das Füllen der Lücken. Nicht mit der selben bzw. gelöschten id, aber mit einer neuen.
Danke! Dann ist es ja genau richtig. :D