zoukankan      html  css  js  c++  java
  • 知识盲点:存在外键的的表,在插入数据时应该如何操作?

    今天学习SQL,涉及到了有外键的表新增数据的问题,心里有一个疑问:有外键的表,可以直接插入数据吗?

    答案是否定的,有外键,必须先在主表中添加数据,然后再添加附表数据,否则会提示约束错误。

    自己把教材上的案例照着手敲一遍,加深印象。

    以下是搜集网络上的解释,更加清晰明了。

    有外键的情况应该先添加主表数据,再添加副表数据。
    如:有以下两张表

    班级表:

    1
    2
    3
    4
    CLASSID  NAME
    1        一班
     
    2        二班

    学生表:

    1
    2
    3
    4
    5
    6
    7
    SID     NAME    CLASSID
     
    1       张三        1
     
    2       李四        1
     
    3       王五        2

      

    其中学生表中的CLASSID是班级表CLASSID的外键。
    现在要求在学生表中添加一条SID=4,NAME=赵六,CLASSID=3的数据,那么只能先在班级表中加入一条新数据。
    insert into 班级表 values (3,'三班');
    然后再在学生表中添加:
    insert into 学生表 values (4,'赵六',3);

    另外的方法

    1、先主表插入数据,再表插入数据集
    2、先禁用外键约束
    ALTER TABLE 表名 NOCHECK CONSTRAINT 外键约束名
    插入数据
    再启用约束
    ALTER TABLE 表名 CHECK CONSTRAINT 外键约束名

    主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
    外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

  • 相关阅读:
    C#static
    Sql中CHARINDEX用法
    分分钟用上C#中的委托和事件
    为什么使用抽象类?有什么好处?
    【NOIP】普及组2009 细胞分裂
    【VIJOS】P1512 SuperBrother打鼹鼠
    【NOIP】提高组2014
    @NOIP2018
    @NOIP2018
    @NOIP2018
  • 原文地址:https://www.cnblogs.com/lncyc/p/12770854.html
Copyright © 2011-2022 走看看