Rikarda: Primärschlüssel "vorgeben"

Hallo Ihr,

in meiner mySQL-Tabelle habe ich eine Zeile mit einem Primärschlüssel belegt, d.h. bei jedem neuen Eintrag zählt mySQL automatisch eine Zahl höher - das Ganze beginnt mit 0 und dann bis ins unendliche ...

Wie kann ich das beeinflussen, das das Ganzen zum einen in einer Tabelle nur dreistellige ID vergibt (also von 100-999) und zum anderen in einer zweiten Tabelle nur IDs vonn 10000-99999, also fünfstellige IDs.

Danke für Eure liebe Hilfe,

Rikarda

  1. Hi,

    Wie kann ich das beeinflussen, das das Ganzen zum einen in einer Tabelle nur dreistellige ID vergibt (also von 100-999) und zum anderen in einer zweiten Tabelle nur IDs vonn 10000-99999, also fünfstellige IDs.

    es existiert absolut kein Grund, etwas derartiges zu wollen, geschweige denn zu ermöglichen.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. es existiert absolut kein Grund, etwas derartiges zu wollen, geschweige denn zu ermöglichen.

      Neee, in Deiner Welt nicht :p

    2. Hallo,

      Wie kann ich das beeinflussen, das das Ganzen zum einen in einer Tabelle nur dreistellige ID vergibt (also von 100-999) und zum anderen in einer zweiten Tabelle nur IDs vonn 10000-99999, also fünfstellige IDs.

      es existiert absolut kein Grund, etwas derartiges zu wollen, geschweige denn zu ermöglichen.

      Ich kann zwar nicht beurteilen, was den OP zu seinem Vorhaben bewogen hat, aber so kategorisch ablehnen würde ich es nicht.

      Wenn Du mit Deinem Kommentar meinst, man soll keine manuell erzeugten Primärschlüssel verwenden, dann muß ich Dir aber sagen, dass mir da schon einige Argumente für solche Primärschlüssel einfallen;-)

      Grüße
        Klaus

      1. Hi,

        Wenn Du mit Deinem Kommentar meinst, man soll keine manuell erzeugten Primärschlüssel verwenden,

        nein, sondern man solle zur Identifikation eines Datensatzes verwendeten Informationen keinerlei Semantik unterlegen.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Wie kann ich das beeinflussen, das das Ganzen zum einen in einer Tabelle nur dreistellige ID vergibt (also von 100-999) und zum anderen in einer zweiten Tabelle nur IDs vonn 10000-99999, also fünfstellige IDs.

    Eine beliebte Methode ist das Anlegen einer Tabelle, die nur aktuelle Schlüssel enthält, und den Schlüssel selbst aus einer Anwendung heraus erzeugen zu lassen.

  3. Hi, ja kannst Du:

    Setz das ID Feld _nicht_ auf auto_increment. Dann musst du bei jedem neuen Datensatz eben prüfen, welche Nummer frei ist und diese manuell eintragen. Etwas aufwendiger, aber es erfüllt den Zweck ;)

    Gruss
    Stefan

  4. Huhu Rikarda

    Wie kann ich das beeinflussen, das das Ganzen zum einen in einer Tabelle nur dreistellige ID vergibt (also von 100-999) und zum anderen in einer zweiten Tabelle nur IDs vonn 10000-99999, also fünfstellige IDs.

    Hmm, damit begrenzt Du die Zahl der möglichen Einträge von vornherein, dann könntest Du das ja auch in den Tabellen so machen.
    Eine Möglichkeit wäre auf auto-increment zu verzichten und die Tabellen bereits mit allen gültigen IDs zu füllen.
    D.h. Du hast im ersten Fall bereits vor dem ersten Eintrag 1000 Datensätze.
    Eine weitere Spalte markiert ob der Datensatz als "leer" oder "belegt" gelten soll, z.B. wenn Sie NULL ist.
    Neue Datensätze können dann nur erzeugt werden, solange es noch einen Datensatz mit NULL in der Spalte gibt.
    Sonst kommt eine Meldung "die Tabelle ist voll".

    Das erscheint mir zwar nicht sinnvoll zu sein, aber wenn Du es so brauchst.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday