GVKun编程网logo

sql – 删除主键行,这是另一个表的外键(删除主键sql语句)

19

在本文中,您将会了解到关于sql–删除主键行,这是另一个表的外键的新资讯,同时我们还将为您解释删除主键sql语句的相关在本文中,我们将带你探索sql–删除主键行,这是另一个表的外键的奥秘,分析删除主键

在本文中,您将会了解到关于sql – 删除主键行,这是另一个表的外键的新资讯,同时我们还将为您解释删除主键sql语句的相关在本文中,我们将带你探索sql – 删除主键行,这是另一个表的外键的奥秘,分析删除主键sql语句的特点,并给出一些关于c# – 如何更新另一个表中作为外键引用的表的主键?、database – 两个表,每个表都有一个引用另一个的外键、JPA 中关联映射,怎样让一个表的主键使用外键参考另一个表的主键、Laravel Eloquent的数据透视表,其中有一个表的2个外键和另一个表的1个外键的实用技巧。

本文目录一览:

sql – 删除主键行,这是另一个表的外键(删除主键sql语句)

sql – 删除主键行,这是另一个表的外键(删除主键sql语句)

假设有一个包含主键的主表,另一个表包含该主表的外键.所以如果我们删除主表的行只是不是子表.

解决方法

您应该在FKey上设置一些特定选项,例如ON DELETE {CASCADE,SET NULL,SET DEFAULT}

相反,您将无法删除引用的行,因为由于引用完整性,sql server禁止它.

因此,选项是将引用表的值设置为NULL或任何其他DEFAULT值.

或者删除它

或者,如果您的引用行在没有父行的情况下具有某种意义 – 那么您的数据库设计就会出现问题 – 要么您不需要FKey,要么未对模式进行规范化.

c# – 如何更新另一个表中作为外键引用的表的主键?

c# – 如何更新另一个表中作为外键引用的表的主键?

假设一个

Table "Person" having 
    "SSN","Name","Address"

和另一个

Table "Contacts" having
    "Contact_ID","Contact_Type","SSN" (primary key of Person)

同样

Table "Records" having
    "Record_ID","Record_Type","SSN" (primary key of Person)

现在我希望当我更改或更新SSN in person表时,相应地在其他2个表中更改.

>如果有人可以帮我解决这个问题
>或者如何为表传递外键约束

解决方法

只需将ON UPDATE CASCADE添加到外键约束即可.

database – 两个表,每个表都有一个引用另一个的外键

database – 两个表,每个表都有一个引用另一个的外键

我正在尝试创建一个数据库来存储测验的一些问题和答案

到目前为止我有两张桌子:

问题:(问题ID(PK),问题字符串,正确答案ID)

答案:(答案ID(PK),答案字符串,问题ID)

我在设置外键约束时遇到问题.当然,我需要确保答案中存在正确的答案ID,并且问题表中还存在答案中的ID问题.但是,当尝试在sqliteStudio中添加这些外键时,我收到的错误表明我无法添加外键引用表A> B,当已经存在来自B的外键约束时>一个.

解决方法

这种行为是正确的.否则,你会遇到鸡与蛋的问题:如果没有先插入一行代码就无法插入答案,而且如果没有先插入有效答案,也无法插入问题它.尝试删除被引用的问题或答案时,您会遇到类似的问题.

一个典型的解决方案是在答案表中添加一列is_correct.

JPA 中关联映射,怎样让一个表的主键使用外键参考另一个表的主键

JPA 中关联映射,怎样让一个表的主键使用外键参考另一个表的主键

使用 Spring-Data 以及 Hibernate 进行开发,在构建表时如何让一个表的主键使用外键参考另一个表的主键,比如我有一个 A 表有一个主键 a,B 表也有一个主键 a,我要让 A 表一对一关联到 B,并且 A 的主键 a 外键参考 B 的主键 a。

Laravel Eloquent的数据透视表,其中有一个表的2个外键和另一个表的1个外键

Laravel Eloquent的数据透视表,其中有一个表的2个外键和另一个表的1个外键

您可以更新belongsToMany调用以将setter_id也包括在枢轴上,然后通过->pivot->setter_id访问它并使用该ID检索模型。

return $this->belongsToMany(Role::class)->withPivot('setter_id');

或者(以及我个人会做的),您可以define a custom pivot model,并在那里建立setter()关系,以便您可以直接从枢轴检索模型。

,

您将永远无法通过在角色集合中调用设置器来访问它。

这是错误的:

$user->roles->setter

让我们看一个可行的示例:

foreach($user->roles as $role)
{
    dd($role->pivot->setter)
}

要做到这一点,您需要更改模型以反映如下内容:

用户

class User extends Model
{
    public $timestamps = false;
    
     public function roles()
     {
         return $this->belongsToMany(Role::class)
            ->using(UserRolePivot::class)
            ->withPivot([
                'role_id','user_id','setter_id',]);
     }
}

角色

class Role extends Model
{
    public $timestamps = false;
    
    public function users()
    {
        return $this->belongsToMany(User::class)
            ->using(UserRolePivot::class)
            ->withPivot([
                'role_id',]);
    }
}

枢轴

use Illuminate\Database\Eloquent\Relations\Pivot;

class UserRolePivot extends Pivot
{
    protected $fillable = [
        'role_id',];

    public function role()
    {
        return $this->belongsTo(Role::class,'role_id');
    }

    public function user()
    {
        return $this->belongsTo(User::class,'user_id');
    }

    public function setter()
    {
        return $this->belongsTo(User::class,'setter_id);
    }
}

关于sql – 删除主键行,这是另一个表的外键删除主键sql语句的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于c# – 如何更新另一个表中作为外键引用的表的主键?、database – 两个表,每个表都有一个引用另一个的外键、JPA 中关联映射,怎样让一个表的主键使用外键参考另一个表的主键、Laravel Eloquent的数据透视表,其中有一个表的2个外键和另一个表的1个外键等相关内容,可以在本站寻找。

本文标签: