Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw do pola automatycznego przyrostu

Ok, zanim uzyskasz odpowiedź na swoje pytanie, muszę Cię ostrzec przed niezwykle zła praktyka, którą próbujesz tam zrobić. Nie zrozum mnie źle, wielu próbowało robić to, co robisz i po prostu nie tak powinno działać.

Twój identyfikator auto_incremented jest kluczem podstawowym. Klucz podstawowy służy do jednoznacznej identyfikacji wiersza w tabeli. Otóż ​​to. Poza tym nie ma to żadnego specjalnego znaczenia.

Więc co to dla ciebie oznacza? Oznacza to, że Twój pomysł, że "zarezerwujesz" 1 - 10k dla adminów, jest zły. Czemu to jest złe? Ponieważ manipulujesz kluczem podstawowym. Nigdy nie powinieneś decydować, jaka powinna być wartość klucza podstawowego, jest to zadanie baz danych z wielu powodów (na przykład ze względu na spójność). Inną rzeczą, dlaczego jest źle, jest to, że ograniczyłeś kogoś do zaledwie 10 000 możliwych wpisów. Z drugiej strony, jak obliczysz, jaki jest następny wpis dla administratorów? Co jeśli wpisałeś 1, 2, 3, 4, a następnie skasujesz wpis z ID =3? Co się wtedy stanie? Jaka jest Twoja następna wartość sekwencji? 3 czy 5?

Powiedziawszy to, prawdopodobnie powinieneś przemyśleć swoją strategię. Dlaczego nie dodać pola „isAdmin”, które poinformuje Cię, czy administrator coś opublikował, czy nie?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Minimalne GRANTy potrzebne mysqldump do zrzucenia pełnego schematu? (Brakuje wyzwalaczy!!)

  2. MySQL - Aktualizuj wartości na podstawie podzapytania

  3. nie mogę połączyć się z MySQL na lokalnym hoście

  4. Używanie instrukcji IF w zapytaniu MySQL SELECT

  5. Porównywanie ciągów znaków w PHP w taki sam sposób, jak robi to MySQL