Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django中,PostgreSQL数据库是用Python实现on_delete还是使用DB触发器?_Django_Postgresql_Foreign Keys - Fatal编程技术网

在Django中,PostgreSQL数据库是用Python实现on_delete还是使用DB触发器?

在Django中,PostgreSQL数据库是用Python实现on_delete还是使用DB触发器?,django,postgresql,foreign-keys,Django,Postgresql,Foreign Keys,我有一个应用程序,它在一个大型Django应用程序和一组微型服务器(用Go编写)之间共享一个数据库。如果一条记录被微服务器删除,使得另一个表中的记录有一个引用它的外键,并且如果我在相应的ForeignKey字段中指定了on_delete=models.CASCADE,以下哪项是正确的 依赖记录将被PostgreSQL删除,或 从属记录应由微服务器“手动”删除(这是我目前所做的工作) 或者,是否有一种方法可以指定如何处理我想要的on_delete 下面是一个完整性示例: from django.c

我有一个应用程序,它在一个大型Django应用程序和一组微型服务器(用Go编写)之间共享一个数据库。如果一条记录被微服务器删除,使得另一个表中的记录有一个引用它的外键,并且如果我在相应的
ForeignKey
字段中指定了
on_delete=models.CASCADE
,以下哪项是正确的

  • 依赖记录将被PostgreSQL删除,或
  • 从属记录应由微服务器“手动”删除(这是我目前所做的工作)
  • 或者,是否有一种方法可以指定如何处理我想要的
    on_delete

    下面是一个完整性示例:

    from django.contrib.gis.db import models
    
    class Parent(models.Model):
        name = models.CharField(max_length=128)
    
    class Child(models.Model):
        name = models.CharField(max_length=128)
        parent = models.ForeignKey(
            Parent,
            null=False,
            on_delete=models.CASCADE)
    
    在围棋中:

    _, err = db.Exec(`DELETE FROM module_parent WHERE ID = $1`, parentID)
    
    或者我必须做:

    _, err = db.EXEC(`DELETE FROM module_child WHERE parent_id = $1`, parentID)
    
    ...
    
    _ err = db.EXEC(`DELETE FROM module_parent WHERE id = $1`, parentID
    
    第二个是正确的,根据:

    删除时的
    不会在数据库中创建SQL约束。支持数据库级级联选项