Entwickler-Ecke
Datenbanken - Access AutoIncrement zurücksetzten
Morpheus1572 - So 10.02.08 17:37
Titel: Access AutoIncrement zurücksetzten
Moin,
zu dem Thema habe ich hier schon was gefunden aber eher zu Paradox...
Also was mein Problem ist:
Wenn ich eine Tabelle leere und sie dann wieder fülle, wird der Index (Autoincrement) weitergeführt von dem letzten gebrauchten. Das ist nicht mein Ziel. wenn ich die Tabelle leere dann möchte ich auch den index auf 1 haben.
Genauso verhält es sich, wenn ich aus einer Tabelle verschieden Sätze entferne. Ich möchte dann auf Knopfdruck erreichen, das die Indizes entsprechend reorganisiert werden. ist das machbar und wenn ja wie?
Lieben dank an eure Mithilfe schon mal vorweg. ;-)
Gruß Morpheus1572
Agawain - Mo 11.02.08 14:46
Titel: Re: Access AutoIncrement zurücksetzten
Moin,
Morpheus1572 hat folgendes geschrieben: |
Moin,
Wenn ich eine Tabelle leere und sie dann wieder fülle, wird der Index (Autoincrement) weitergeführt von dem letzten gebrauchten. Das ist nicht mein Ziel. wenn ich die Tabelle leere dann möchte ich auch den index auf 1 haben.
|
In diesem Fall Tabellenstruktur kopieren, dann fängst wieder bei 1 an. Alte Tabelle löschen.
Morpheus1572 hat folgendes geschrieben: |
Genauso verhält es sich, wenn ich aus einer Tabelle verschieden Sätze entferne. Ich möchte dann auf Knopfdruck erreichen, das die Indizes entsprechend reorganisiert werden. ist das machbar und wenn ja wie?
|
In diesem Fall Tabellenstrukur und Daten kopieren. Der Autoincrement-Wert wird nicht mitkopiert, sondern neu aufgebaut.
Delete - Mo 11.02.08 15:08
Warum ist es für dich wichtig, welche Werte die Inidzes haben? Sie dienen lediglich der Datenbank dazu eine Datensatz eindeutig zu identifizieren. Für den Benutzer der Datenbank sind sie ohne bedeutung und daher ist deren Wert egal.
ene - Mo 11.02.08 15:19
Ich sehs wie Luckie. Wenn du die Tabelle leerst, musst du die DB komprimieren, damit der Autowert wieder bei 1 beginnt.
Morpheus1572 - Mo 11.02.08 18:55
Danke Leutz,
warum es mir wichtig ist? naja, nennt mich spießig aber ich habe keine lust irgendwann mal nen index von 63214 zu haben, tatsächlich aber nur 2500 datensätze und so...
war auch nur ne frage.
@ene:
heißt das, dass beim komprimieren die indizes automatisch neu vergeben werden? oder was passiert dabei genau?
Gruß
Morph
ene - Di 12.02.08 11:20
Ja, der Index wird neu vergeben, beginnend beim kleinsten Wert. Wenn dort also 2500 steht, wärs 2501. Wenn kein Datensatz vorhanden ist, halt 1.
jasocul - Mi 13.02.08 09:02
Morpheus1572 hat folgendes geschrieben: |
| warum es mir wichtig ist? naja, nennt mich spießig aber ich habe keine lust irgendwann mal nen index von 63214 zu haben, tatsächlich aber nur 2500 datensätze und so... |
Und jetzt stell dir vor, du arbeitest mit einer richtigen Datenbank, wo die Tabellen über den Index referenzieren. Wenn du nun eine Tabelle reorganisierst, sind alle Referenzen zu dieser Tabelle im A.... äh Eimer. Das zu reparieren, ist fast unmöglich.
ene - Mi 13.02.08 09:11
jasocul hat folgendes geschrieben: |
| Und jetzt stell dir vor, du arbeitest mit einer richtigen Datenbank, wo die Tabellen über den Index referenzieren. Wenn du nun eine Tabelle reorganisierst, sind alle Referenzen zu dieser Tabelle im A.... äh Eimer. Das zu reparieren, ist fast unmöglich. |
Naja da du nen keinen Toyota fährst, kann man das sagen, ansonsten ist nichts unmöglich ;) Wobei ich dir recht gebe, referentielle Integrität sollte immer verwendet werden.
jasocul - Mi 13.02.08 09:23
ene hat folgendes geschrieben: |
| Naja da du nen keinen Toyota fährst |
Du meinst jetzt nicht mich, oder? Ich nutze hauptsächlich Oralce.
ene hat folgendes geschrieben: |
| , kann man das sagen, ansonsten ist nichts unmöglich ;) Wobei ich dir recht gebe, referentielle Integrität sollte immer verwendet werden. |
Ich schrieb "fast unmöglich". Wenn das DB-Design absolut fehlerfrei ist, kann man eine Reorganisation vielleicht machen. Aber was ist schon fehlerfrei. :twisted:
ene - Mi 13.02.08 09:24
jasocul hat folgendes geschrieben: |
ene hat folgendes geschrieben: | | Naja da du nen keinen Toyota fährst | Du meinst jetzt nicht mich, oder? Ich nutze hauptsächlich Oralce. |
Doch, aber es ist ja auch nicht das Orakel von Delphi :mrgreen:
Blawen - Mi 13.02.08 23:17
Titel: Re: Access AutoIncrement zurücksetzten
Morpheus1572 hat folgendes geschrieben: |
Wenn ich eine Tabelle leere und sie dann wieder fülle, wird der Index (Autoincrement) weitergeführt von dem letzten gebrauchten. Das ist nicht mein Ziel. wenn ich die Tabelle leere dann möchte ich auch den index auf 1 haben.
|
Ich kenne Access leider nicht, bzw. zuwenig. Geht der SQL-Weg nicht?
--> Truncate Table XY
PC-John - Do 14.02.08 23:05
Morpheus1572 hat folgendes geschrieben: |
warum es mir wichtig ist? naja, nennt mich spießig aber ich habe keine lust irgendwann mal nen index von 63214 zu haben, tatsächlich aber nur 2500 datensätze und so...
|
Also dieses Problem kratzt bestenfalls einen Anfänger.
Dieser Autoincrement-Zähler im primary-Key-Feld hat schon seinen Berechtigungsgrund.
Die übrigen (alles Sekundär-) Indexe können sich dann nicht mehr überwerfen, selbst wenn identische Einträge in indexierten Feldern stehen.
Dieser Primary-Key hat einen Werte-Vorrat von 1 bis 2hoch31, das sollte bis ans Ende jeglicher PC-gestützten Datenbank reichen.
Wenn ums verr.... der Zähler wieder mal bei 1 beginnen muss:
Die Daten hinausschreiben in ein Array, die Tabelle löschen (drop table, nicht nur ein empty table) und die Tabelle neu errichten,
danach das Array wieder einlesen.
Aber eine Referenz-Integrität ist dann meist zum Teufel, wegen der "schöneren" Tabelle halt.
Morpheus1572 - Fr 15.02.08 22:18
@pcjohn
okay, okay, okay ;-)
habe es verstanden. dann lass ich das eben. ist ja auch nicht lebensnotwendig. hatte mich eben nur interessiert. aber wenn es so ist wie du sagtes ist es ja auch okay. ich bin immer gern bereit was dazu zu lernen.
LG
Morpheus1572
Blawen - Sa 16.02.08 00:36
Morpheus1572 hat folgendes geschrieben: |
| ..aber wenn es so ist wie du sagtes ist es ja auch okay. ich bin immer gern bereit was dazu zu lernen... |
Irgendwie sehe ich mehrer Postings, welche Dich darauf hinweisen - Du brauchst aber viel Überzeugungsarbeit :lol: ;-)
Morpheus1572 - Mo 18.02.08 07:16
Naja, ich höre mir halt gerne an was die Menge zu sagen hat. ;-)
Nein im ernst: ich danke euch allen. fühle mich hier gut aufgehoben! Ihr seid klasse.
Bis zum nächsten Problem
Morph
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!