1
我在MySQL數據庫的兩個表,它看起來像這樣:如何在Django模型中定義多主鍵和外鍵
Table1:
number int pk
type int pk
...
Table2:
number int pk fk
type int pk fk
...
我在models.py定義的模型這樣
def Table1:
class Meta:
unique-together = ('number', 'type'),
index-together = ('number', 'type'),
primary = ('number', 'type')
number = models.IntegerField()
type = models.IntegerField()
...
當我遷移模型時,結果不是我想要的。
BEGIN;
--
-- Create model Table1
--
CREATE TABLE "multiprimary_table1" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "number" integer NOT NULL, "type" integer NOT NULL);
--
-- Alter unique_together for table1 (1 constraint(s))
--
ALTER TABLE "multiprimary_table1" RENAME TO "multiprimary_table1__old";
CREATE TABLE "multiprimary_table1" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "number" integer NOT NULL, "type" integer NOT NULL);
INSERT INTO "multiprimary_table1" ("type", "id", "number") SELECT "type", "id", "number" FROM "multiprimary_table1__old";
DROP TABLE "multiprimary_table1__old";
CREATE UNIQUE INDEX "multiprimary_table1_number_8d499fc9_uniq" ON "multiprimary_table1" ("number", "type");
--
-- Alter index_together for table1 (1 constraint(s))
--
ALTER TABLE "multiprimary_table1" RENAME TO "multiprimary_table1__old";
CREATE TABLE "multiprimary_table1" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "number" integer NOT NULL, "type" integer NOT NULL);
INSERT INTO "multiprimary_table1" ("type", "id", "number") SELECT "type", "id", "number" FROM "multiprimary_table1__old";
DROP TABLE "multiprimary_table1__old";
CREATE UNIQUE INDEX "multiprimary_table1_number_8d499fc9_uniq" ON "multiprimary_table1" ("number", "type");
CREATE INDEX "multiprimary_table1_number_8d499fc9_idx" ON "multiprimary_table1" ("number", "type");
COMMIT;
Django的在我的表中添加ID和設置主鍵ID列,我該如何解決呢? 而且我不知道如何定義多個外鍵,有人可以告訴我嗎?
Django不支持組合鍵。有一些工作需要增加支持,但我不知道目前的狀況。 – knbk