在django中强制复合多个键

Dav*_*542 2 python mysql sql django database-design

我需要在数据库级别强制执行复合键.复合键由五列组成.在django中,我可以使用以下命令执行伪复合键:

unique_together = ("col1", "col2", "col3", "col4", "col5")
Run Code Online (Sandbox Code Playgroud)

但是,插入表中的所有数据都来自django之外的python脚本.如果未强制执行此复合主键,则该脚本将无法正常工作(我不想在脚本级别解决此问题).

我将如何解决这个问题,或者django完全不可能在这里完成这个任务?

更新:我从评论中看到,这在数据库级别强制执行的.还有一种方法可以摆脱自动递增的主键吗?请注意,这些列本身都不是唯一的.

Ala*_*air 6

你可以用unique_together它.

从关于独特文档的Django文档(我的重点):

这是一系列字段列表,这些字段在一起考虑时必须是唯一的.它在Django管理员中使用,并在数据库级别强制执行(即,相应的UNIQUE语句包含在CREATE TABLE语句中).