Mysql
 sql >> Datenbank >  >> RDS >> Mysql

In ein Auto-Increment-Feld einfügen

Ok, bevor Sie die Antwort auf Ihre Frage erhalten, muss ich Sie vor extrem warnen schlechte Praxis, die Sie da versuchen. Verstehen Sie mich nicht falsch, viele haben versucht, das zu tun, was Sie tun, und es ist einfach nicht so, wie die Dinge funktionieren sollten.

Ihre auto_incremented ID ist ein Primärschlüssel. Der Primärschlüssel wird verwendet, um eine Zeile in einer Tabelle eindeutig zu identifizieren. Das ist es. Es hat darüber hinaus keine besondere Bedeutung.

Was bedeutet das für Sie? Es bedeutet, dass Ihre Idee, dass Sie 1 - 10.000 für Administratoren "reservieren", schlecht ist. Warum ist es schlecht? Weil Sie den Primärschlüssel manipulieren. Sie sollten niemals entscheiden, welchen Wert der Primärschlüssel haben soll, das ist aus vielen Gründen die Aufgabe von Datenbanken (z. B. Konsistenz). Der andere Grund, warum es schlecht ist, ist, dass Sie jemanden auf nur 10.000 mögliche Einträge beschränkt haben. Andererseits, wie berechnen Sie, was der nächste Eintrag für Administratoren ist? Was ist, wenn Sie 1, 2, 3, 4 eingegeben haben und dann den Eintrag mit der ID =3 löschen? Was passiert dann? Was ist Ihr nächster Wert in Folge? 3 oder 5?

Trotzdem sollten Sie Ihre Strategie wahrscheinlich überdenken. Warum fügen Sie nicht ein Feld "isAdmin" hinzu, das Ihnen sagt, ob ein Administrator etwas gepostet hat oder nicht?