Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer un champ d'incrémentation automatique dans Django qui commence à partir de 10000

Le plus simple est d'attraper le signal post-migration

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)

Ce que nous faisons ici, c'est créer un enregistrement et le supprimer immédiatement. Sur mysql, cela change la valeur suivante dans l'incrémentation automatique. Peu importe que l'enregistrement ait été supprimé. Le prochain numéro attribué sera 1000.