PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Zusammengesetzter Primärschlüssel in Django

Versuchen Sie den folgenden Code:

class MyTable(models.Model):
    class Meta:
        unique_together = (('key1', 'key2'),)

    key1 = models.IntegerField(primary_key=True)
    key2 = models.IntegerField()

oder wenn Sie nur eindeutige gemischte Felder wünschen:

class MyTable(models.Model):
    class Meta:
        unique_together = (('key1', 'key2'),)

    key1 = models.IntegerField()
    key2 = models.IntegerField()

BEARBEITEN:Ich möchte darauf hinweisen, dass es bei diesem Ansatz ein Problem gibt, wenn es 3 Spalten gibt. Aktualisierungsabfragen funktionieren nicht, da versucht wird, die Felder zu aktualisieren (pk-Felder direkt hinter "SET") zu aktualisieren, die zusammen eindeutig sind, und offensichtlich fehlschlägt.