Django中的复合主键

哈伊瓦

我有一个具有复合主键的旧式数据库表。我认为我无法更改结构以包含代理键,因为编写了一些使用该表的代码。在django中,我无法使用该表,因为它没有主键(非复合键)。

Django模型是否支持复合主键?如果不是,是否有任何解决方法而不更改表的结构?

PS我正在使用PostgreSQL。

贾维德

试试下面类似的代码:

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

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

或者,如果您只想要唯一的混合字段:

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

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

编辑:我想指出,如果有3列,则此方法存在问题。更新查询不起作用,因为它尝试更新(唯一设置在“ SET”之后的pk字段)唯一的字段,并且显然失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sqlite中的复合主键

来自分类Dev

Yesod中的复合主键

来自分类Dev

WebSQL中的复合主键

来自分类Dev

在mongodb中查询复合主键

来自分类Dev

Django使用复合主键更新模型

来自分类Dev

在h2中定义复合主键

来自分类Dev

更改cassandra CQL 3.0中的复合主键

来自分类Dev

MySql中的外键作为复合主键

来自分类Dev

REST Spring Boot中复合主键的用法

来自分类Dev

如何使用复合主键从表中删除?

来自分类Dev

嵌入属性JPA中的复合主键

来自分类Dev

复合主键,由其他表中的主键组成

来自分类Dev

在Django中,如何将具有复合主键的表联接到另一个表?

来自分类Dev

测试中的Django主键

来自分类Dev

在Django中设置主键

来自分类Dev

不使用用户的友谊表的Django复合主键

来自分类Dev

网址中不包含复合主键的OData请求

来自分类Dev

Eclipse IDE中显示了在JPA复合主键类错误

来自分类Dev

在NHibernate事件监听器中处理复合主键

来自分类Dev

如何使用复合主键从SpringBoot中的MySql检索数据

来自分类Dev

多租户SQL Server数据库中的复合主键

来自分类Dev

如何从休眠中的复合主键获取自动生成的值

来自分类Dev

合并到具有复合主键的表中

来自分类Dev

如何在sqlite中创建具有复合主键的表?

来自分类Dev

复合主键:是好是坏

来自分类Dev

Redshift:定义复合主键

来自分类Dev

主键和复合键

来自分类Dev

CakePHP 2复合主键

来自分类Dev

复合vs代理主键