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

So erstellen Sie ein automatisches Inkrementfeld in Django, das bei 10000 beginnt

Am einfachsten ist es, das Post-Migration-Signal abzufangen

from django.apps import AppConfig
from django.db.models.signals import post_migrate

def my_callback(sender, **kwargs):
     if sender.name = 'myapp'
     try:
         university = University.objects.create(pk=999, ...)
         university.delete()
     except IntegrityError:
         pass

class MyAppConfig(AppConfig):
    ...

    def ready(self):
        post_migrate.connect(my_callback, sender=self)

Was wir hier tun, ist, einen Datensatz zu erstellen und ihn sofort zu löschen. Auf mysql ändert das den nächsten Wert im Auto-Inkrement. Es spielt keine Rolle, dass der Datensatz gelöscht wurde. Die nächste zugewiesene Nummer ist 1000.