Ich habe eine vorhandene Datenbank mit PHP, MySQL und phpMyAdmin.
Wenn Benutzer Mitglied auf meiner Website werden, muss das System eine eindeutige Mitgliedsnummer für sie mit einer fünfstelligen Nummer erstellen. für zB 83773. Ich denke, es ist wie ein zufälliges Passwort zu generieren, außer ich möchte nur Zahlen für meine Mitglieder. Diese ID-Nummer muss für jedes Mitglied eindeutig sein.
Wäre es mir möglich, den Primärschlüssel in meiner Benutzertabelle auf auto_increment zu setzen und ihn auf 10000 zu starten und dann jedes Mal automatisch zu erhöhen, wenn sich ein Mitglied registriert?
Gibt es auch eine maximale Anzahl, bis zu der die Primärschlüssel-ID-Nummer steigen würde?
Ist dies eine zuverlässige und sichere Möglichkeit, die Primärschlüssel-ID als Mitgliedsnummer zu verwenden?
quelle
Antworten:
Es gibt mögliche Schritte, um das automatische Inkrementieren für eine Spalte zu aktivieren. Ich denke, die phpMyAdmin-Version ist 3.5.5, aber nicht sicher.
Klicken Sie auf Tabelle > Registerkarte Struktur > Klicken Sie unter Aktion auf Primär (als Primär festgelegt) auf Ändern im Popup-Fenster, scrollen Sie nach links und aktivieren Sie A_I . Stellen Sie außerdem sicher, dass Sie Keine als Standard ausgewählt haben
quelle
Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Navigieren Sie in phpMyAdmin zu der betreffenden Tabelle und klicken Sie auf die Registerkarte "Vorgänge". Links unter Tabellenoptionen können Sie den aktuellen Wert für AUTO_INCREMENT festlegen.
quelle
Führen Sie einfach eine einfache MySQL-Abfrage aus und stellen Sie die automatische Inkrementierungsnummer auf die gewünschten Werte ein.
In Bezug auf ein Maximum gibt es meines Wissens weder eines noch eine Möglichkeit, diese Anzahl zu begrenzen.
Es ist absolut sicher und üblich, eine ID-Nummer als Primärschlüssel festzulegen und int automatisch zu inkrementieren. Es gibt Alternativen wie die Verwendung von PHP, um Mitgliedsnummern für Sie in einem bestimmten Format zu generieren und dann zu überprüfen, ob die Nummer vor dem Einfügen nicht vorhanden ist. Für mich persönlich würde ich jedoch die primäre ID auto_inc verwenden.
quelle
quelle
Wenn Sie in phpMyAdmin ein Feld in Ihrer Tabelle so einrichten, dass es automatisch inkrementiert wird, und dann eine Zeile einfügen und den Wert dieses Felds auf 10000 setzen, wird es von dort aus fortgesetzt.
quelle
@AmitKB, Ihr Verfahren ist korrekt. Obwohl dieser Fehler
Abfragefehler: # 1075 - Falsche Tabellendefinition; Es kann nur eine automatische Spalte geben, die als Schlüssel definiert werden muss
Sie können das Problem lösen, indem Sie das Feld zuerst als Schlüssel markieren (mithilfe des Schlüsselsymbols mit der Bezeichnung "Primär"). Wenn Sie keinen anderen Schlüssel haben, funktioniert dies möglicherweise nicht.
quelle
Sie können keinen Maximalwert festlegen (außer die Auswahl eines Datentyps, der keine großen Zahlen enthalten kann, aber es gibt keinen, der das gewünschte Limit hat). Sie können dies mit LAST_INSERT_ID () nach dem Einfügen überprüfen, um die ID des neu erstellten Mitglieds abzurufen, und wenn es zu groß ist, behandeln Sie es in Ihrem Anwendungscode (z. B. löschen und ablehnen Sie das Mitglied).
Warum willst du eine Obergrenze?
quelle
Dies ist auf die
wp_terms
,wp_termmeta
undwp_term_taxonomy
Tabellen, die alle hatten ihre ID ist nicht gesetztAUTO_INCREMENT
Gehen Sie dazu zu phpmyadmin, klicken Sie auf die betreffende Datenbank,
wp_terms
Tabelle, klicken Sie auf die Registerkarte Struktur. Auf der rechten Seite sehen Sie eine Registerkarte mit dem NamenA_I(AUTO_INCREMENT)
, überprüfen Sie sie und speichern Sie sie (Sie tun dies nur für die erste Option, fallswp_term
Sie dies tun nur fürterm_id
).Machen Sie dasselbe für
wp_termmeta
undwp_term_taxonomy
das wird das Problem beheben.quelle
(a) Klicken Sie einfach auf Ihre Datenbank und wählen Sie Ihre Tabelle aus. Klicken Sie auf "Operationen". Ändern Sie im Abschnitt 'Tabellenoptionen' den Wert AUTO_INCREMENT auf den gewünschten Wert. In diesem Fall: 10000 Klicken Sie auf 'Los'. (Siehe das beigefügte Bild)
(b) Alternativ können Sie nach Auswahl Ihrer Tabelle einen SQL-Befehl auf der Registerkarte SQL ausführen. Geben Sie einfach 'ALTER TABLE table_name AUTO_INCREMENT = 10000;' Klicken Sie dann auf "Los". Das ist es!! EINSTELLEN DES AUTOMATISCHEN ERHÖHUNGSWERTES Bild (a)
EINSTELLEN DES AUTOMATISCHEN ERHÖHUNGSWERTES Bild (B)
quelle