精华内容
下载资源
问答
  • SQL删除外键约束

    万次阅读 2019-06-14 02:18:23
    2019独角兽企业重金招聘Python工程师标准>>> ...使用如下SQL语句查询出表中外键约束名称: ... 外键约束名       转载于:https://my.oschina.net/weisenz/blog/200655

      

    使用如下SQL语句查询出表中外键约束名称:

    1 select name  
    2 from  sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id 
    3 where f.parent_object_id=object_id('表名')

    执行如下SQL语句删除即可。

    1 alter table 表名 drop constraint 外键约束名

     

     

     

    转载于:https://my.oschina.net/weisenz/blog/200655

    展开全文
  • --------添加主键约束(bookid作为主键)  alter table bookmessage  add constraint pk_bookid primary key(bookid)  --------添加唯一约束  alter table bookmessage  add constraint uq_bookid ...
    --------添加主键约束(bookid作为主键) 
    alter table bookmessage 
    add constraint pk_bookid primary key(bookid) 


    --------添加唯一约束 
    alter table bookmessage 
    add constraint uq_bookid UNIQUE(bookid) 


    ---------添加默认约束 
    alter table bookmessage 
    add constraint df_address DEFAUIT('地址不详') for Address 


    --------添加检出约束,要求年龄只能在15---40之间 
    alter table readermessage 
    add constraint CK_age CHECK(age BETWEEN 15 AND 40) 


    -------添加外键约束 
    alter table 外键表名
    add constraint 约束名
    foreign key(外键列名) references readermessage 主键表名(主键列名) 


    -------删除约束 
    alter table 表名 
    drop constraint 约束名


    --删除单个表
    DROP   TABLE   table_name
    DROP   TABLE   table_name(表名)
     
    删除所有的表:
    如果由于外键约束删除table失败,则先删除所有约束:
    --/第1步**********删除所有表的外键约束*************************/
    DECLARE c1 cursor for
        select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '
        from sysobjects
        where xtype = 'F'
    open c1
    declare @c1 varchar(8000)
    fetch next from c1 into @c1
    while(@@fetch_status=0)
        begin
            exec(@c1)
            fetch next from c1 into @c1
        end
    close c1
    deallocate c1
    --/第2步**********删除所有表*************************/
    use 数据库
    declare @tname varchar(8000)
    set @tname=''
    select @tname=@tname + Name + ',' from sysobjects where xtype='U'
    select @tname='drop table ' + left(@tname,len(@tname)-1)
    exec(@tname)
    删除所有的存储过程同理可得,但不需要走第一步,只需将第2步的代码的where xtype='U' 改成 where xtype='P',drop table 改成 drop Procedure
    sysobjects的xtype代表含义:
    在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。


    列名 数据类型 描述
    name sysname 对象名。
    Id int 对象标识号。
    xtype char(2) 对象类型。可以是下列对象类型中的一种:
    C = CHECK 约束
    D = 默认值或 DEFAULT 约束
    F = FOREIGN KEY 约束
    L = 日志
    FN = 标量函数
    IF = 内嵌表函数
    P = 存储过程
    PK = PRIMARY KEY 约束(类型是 K)
    RF = 复制筛选存储过程
    S = 系统表
    TF = 表函数
    TR = 触发器
    U = 用户表
    UQ = UNIQUE 约束(类型是 K)
    V = 视图
    X = 扩展存储过程


    uid smallint 所有者对象的用户 ID。
    info smallint 保留。仅限内部使用。
    status int 保留。仅限内部使用。
    base_schema_
    ver int 保留。仅限内部使用。
    replinfo int 保留。供复制使用。
    parent_obj int 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。
    crdate datetime 对象的创建日期。
    ftcatid smallint 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。
    schema_ver int 版本号,该版本号在每次表的架构更改时都增加。
    stats_schema_
    ver int 保留。仅限内部使用。
    type char(2) 对象类型。可以是下列值之一:
    C = CHECK 约束
    D = 默认值或 DEFAULT 约束
    F = FOREIGN KEY 约束
    FN = 标量函数
    IF = 内嵌表函数
    K = PRIMARY KEY 或 UNIQUE 约束
    L = 日志
    P = 存储过程
    R = 规则
    RF = 复制筛选存储过程
    S = 系统表
    TF = 表函数
    TR = 触发器
    U = 用户表
    V = 视图
    X = 扩展存储过程


    userstat smallint 保留。
    sysstat smallint 内部状态信息。
    indexdel smallint 保留。
    refdate datetime 留作以后使用。
    version int 留作以后使用。
    deltrig int 保留。
    instrig int 保留。
    updtrig int 保留。
    seltrig int 保留。
    category int 用于发布、约束和标识。
    cache smallint 保留
    展开全文
  • SQL Server 外键约束

    千次阅读 2014-04-09 22:40:33
    SQL Server 外键约束的例子 外键约束的测试表与测试数据 -- 创建测试主表. ID 是主键. CREATE TABLE test_main ( id INT, value VARCHAR(10), PRIMARY KEY(id)  );   --...

    外键约束的测试表与测试数据


    -- 创建测试主表. ID 是主键.

    CREATE TABLE test_main (

    id      INT,

    value   VARCHAR(10),

    PRIMARY KEY(id) 

    );

     

    -- 创建测试子表. 

    CREATE TABLE test_sub (

    id      INT,

    main_id INT,

    value   VARCHAR(10),

    PRIMARY KEY(id) 

    );

     

    -- 插入测试主表数据.

    INSERT INTO test_main(id, value) VALUES (1, 'ONE');

    INSERT INTO test_main(id, value) VALUES (2, 'TWO');

     

    -- 插入测试子表数据.

    INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');

    INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');

     

    默认外键约束方式

    1> ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;

    2> go

    1> DELETE

    2>   test_main

    3> WHERE

    4>   ID = 1;

    5> go

    消息 547,级别 16,状态 1,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行

    DELETE 语句与 REFERENCE 约束"main_id_cons"冲突。该冲突发生于数据库"Stock",表"db

    o.test_sub", column 'main_id'。

    语句已终止。

    测试完毕后,删除 外键约束

    ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;

     

     

     

    DELETE CASCADE 方式

    1> -- 创建外键(使用 ON DELETE CASCADE 选项,删除主表的时候,同时删除子表)

    2> ALTER TABLE test_sub

    3>   ADD CONSTRAINT main_id_cons

    4>     FOREIGN KEY (main_id) REFERENCES test_main ON DELETE CASCADE;

    5>

    6> -- 测试删除主表数据. 将成功地执行.

    7> DELETE

    8>   TEST_MAIN

    9> WHERE

    10>   ID = 1;

    11>

    12> -- 测试检索子表,应该只有一条 main_id = 2 的数据.

    13> SELECT

    14>   *

    15> FROM

    16>   test_sub;

    17>

    18> go

    (1 行受影响)

    id          main_id     value

    ----------- ----------- ----------

              2           2 TWOTWO

    (1 行受影响)

    测试完毕后,删除 外键约束 

    ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;

     

     

     

    UPDATE CASCADE方式

    -- 创建外键(使用 ON UPDATE CASCADE 选项,更新主表的主键时候,同时更新子表外键)

    1> ALTER TABLE test_sub

    2>    ADD CONSTRAINT main_id_cons

    3>      FOREIGN KEY (main_id) REFERENCES test_main ON UPDATE CASCADE;

    4> go

    -- 测试更新主表数据. 将成功地执行.

    1> UPDATE test_main SET id = 5 where id = 1

    2> go

    (1 行受影响)

    -- 检查 子表 数据是否被同步更新

    1> select * from test_sub

    2> go

    id          main_id     value

    ----------- ----------- ----------

              1          5 ONEONE

              2           2 TWOTWO

    测试完毕后,删除 外键约束 

    ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;

     

     

     

     

    SET NULL方式

    1> -- 创建外键(使用 ON DELETE SET NULL 选项,删除主表的时候,同时将子表的 main_i

    d 设置为 NULL)

    2> ALTER TABLE test_sub

    3>   ADD CONSTRAINT main_id_cons

    4>     FOREIGN KEY (main_id) REFERENCES test_main ON DELETE SET NULL;

    5>

    6>

    7> -- 测试删除主表数据. 将成功地执行.

    8> DELETE

    9>   TEST_MAIN

    10> WHERE

    11>   ID = 2;

    12>

    13> -- 测试检索子表,应该有一条的 main_id = null

    14> SELECT

    15>   *

    16> FROM

    17>   test_sub;

    18>

    19> go

    (1 行受影响)

    id          main_id     value

    ----------- ----------- ----------

              2        NULL TWOTWO

    (1 行受影响)

    测试完毕后,删除 外键约束 

    ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;




    SET DEFAULT 方式 

    为了更容易理解, SET DEFAULT 方式 使用下面这样的 测试表 与 测试数据. 

    -- 创建测试主表. ID 是主键.
    -- 班级表.
    CREATE TABLE test_main_class (
      id      INT   NOT NULL,
      value   VARCHAR(20),
      PRIMARY KEY(id)  
    );
    
    
    -- 创建测试子表. 
    -- 学生表.
    CREATE TABLE test_sub_student (
      id      INT  NOT NULL,
      main_id INT  DEFAULT 0,
      value   VARCHAR(10),
      PRIMARY KEY(id)  
    );
    
    
    -- 插入测试主表数据.
    INSERT INTO test_main_class(id, value) VALUES (0, '暂无班级');
    INSERT INTO test_main_class(id, value) VALUES (1, '2013级1班');
    INSERT INTO test_main_class(id, value) VALUES (2, '2013级2班');
    
    
    -- 插入测试子表数据.
    INSERT INTO test_sub_student(id, main_id, value) VALUES (1, 1, '张三');
    INSERT INTO test_sub_student(id, main_id, value) VALUES (2, 2, '李四');
    
    
    
    

    首先测试 ON DELETE SET DEFAULT




    ALTER TABLE test_sub_student

      ADD CONSTRAINT fk_main_class

        FOREIGN KEY (main_id)  REFERENCES  test_main_class ON DELETE SET DEFAULT;



    SELECT

      test_main_class.value AS "班级",

      test_sub_student.value AS "学生"

    FROM

      test_main_class

        JOIN test_sub_student

     ON(test_main_class.id = test_sub_student.main_id);

    go

    班级                   学生

    -------------------- ----------

    2013级1班              张三

    2013级2班              李四


    (2 行受影响)



    1> DELETE FROM test_main_class WHERE ID = 1;

    2> go


    (1 行受影响)

    1> SELECT

    2>   test_main_class.value AS "班级",

    3>   test_sub_student.value AS "学生"

    4> FROM

    5>   test_main_class

    6>     JOIN test_sub_student

    7>        ON(test_main_class.id = test_sub_student.main_id);

    8> go

    班级                   学生

    -------------------- ----------

    暂无班级                 张三

    2013级2班              李四


    (2 行受影响)

    1>




    ON DELETE SET DEFAULT

    指定如果试图删除某一行,

    而该行的键被其他表的现有行中的外键所引用,

    则组成被引用行中的外键的所有值将被设置为它们的默认值。


    为了执行此约束,目标表的所有外键列必须具有默认定义。

    如果某个列可为空值,并且未设置显式的默认值,则将使用 NULL 作为该列的隐式默认值。

    因 ON DELETE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。



    然后测试 ON UPDATE SET DEFAULT



    -- 删除前面的外键约束.

    ALTER TABLE test_sub_student DROP CONSTRAINT fk_main_class; 

    GO



    -- 创建外键约束.

    ALTER TABLE test_sub_student

      ADD CONSTRAINT fk_main_class

        FOREIGN KEY (main_id)  REFERENCES  test_main_class ON UPDATE SET DEFAULT;



    -- 更新主表.

    1> UPDATE test_main_class SET ID = 20 WHERE ID = 2;

    2> go


    (1 行受影响)

    1>

    2> SELECT

    3>   test_main_class.value AS "班级",

    4>   test_sub_student.value AS "学生"

    5> FROM

    6>   test_main_class

    7>     JOIN test_sub_student

    8>        ON(test_main_class.id = test_sub_student.main_id);

    9> go

    班级                   学生

    -------------------- ----------

    暂无班级                 张三

    暂无班级                 李四


    (2 行受影响)




    ON UPDATE SET DEFAULT

    指定如果试图更新某一行,

    而该行的键被其他表的现有行中的外键所引用,

    则组成被引用行中的外键的所有值将被设置为它们的默认值。


    为了执行此约束,目标表的所有外键列必须具有默认定义。

    如果某个列可为空值,并且未设置显式的默认值,则将使用 NULL 作为该列的隐式默认值。

    因 ON UPDATE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。


    展开全文
  • SQL添加外键约束

    万次阅读 多人点赞 2019-03-14 11:05:42
    --1,sql语句创建表的同时添加外键约束 CREATE TABLE tb_UserAndRole --用户角色表 ( ID INT PRIMARY KEY IDENTITY(1,1), UserID INT NOT NULL,--用户ID RoleID INT NOT NULL,--角色ID foreign key(UserID) ...
    --1,sql语句创建表的同时添加外键约束
    CREATE TABLE tb_UserAndRole  --用户角色表
    (
      ID INT PRIMARY KEY IDENTITY(1,1),
      UserID INT NOT NULL,--用户ID
      RoleID INT NOT NULL,--角色ID
      foreign key(UserID) references tb_Users(ID)--tb_Users表的ID作为tb_UserAndRole表的外键
    )
    
    
       --2、添加外键约束(关联字段要用括号括起来)
       -- ALTER TABLE 从表
       -- ADD CONSTRAINT 约束名 FOREIGN KEY (关联字段) references 主表(关联字段);
       --例如:
      ALTER TABLE tb_UserAndRole
       ADD CONSTRAINT FK__tb_UandR_Role FOREIGN KEY (RoleID) references tb_Role(ID);
    
    ALTER TABLE table1  ADD CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
    REFERENCES table2(department_id);

    table1是子表,table2是父表。 没错。

    table2的department_id 应该是 主键, 或者 有唯一约束的列。

    外键是table1子表上的。
    也就是 子表 table1.department_id 中的数据, 必须在 table2的department_id 那里要有。

    如果没有, 那么
    如果你 INSERT INTO table1 一个 table2 没有的 department_id
    那么 数据库将 拒绝你的插入操作。

    ALTER TABLE 子表 ADD CONSTRAINT 外键名 FOREIGN KEY (关联字段) 
    REFERENCES 主表(被关联的字段) on delete cascade on update restrict;

    外键约束属性:当有删除或者更新操作的时候发出这个约束

    On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性。现在分别对他们的属性含义做个解释。

    ON DELETE
    restrict(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。

    no action:意思同restrict.即如果存在从数据,不允许删除主数据。

    cascade(级联):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。

    set null:当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)

    ON UPDATE
    restrict(约束):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。

    no action:意思同restrict.

    cascade(级联):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。

    set null:当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。

    注:NO ACTION和RESTRICT的区别:只有在及个别的情况下会导致区别,前者是在其他约束的动作之后执行,后者具有最高的优先权执行。
     

    CASCADE
    在父表上update/delete记录时,同步update/delete掉子表的匹配记录 

    SET NULL
    在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)  

    NO ACTION
    如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作  

    RESTRICT
    同no action, 都是立即检查外键约束

    SET NULL
    父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

     

    NULL、RESTRICT、NO ACTION

    删除:从表记录不存在时,主表才可以删除。删除从表,主表不变

    更新:从表记录不存在时,主表才可以更新。更新从表,主表不变

    restrict: 只要本表格里面有指向主表的数据, 在主表里面就无法更新/删除相关记录,相当于no action。

    CASCADE

    删除:删除主表时自动删除从表。删除从表,主表不变

    更新:更新主表时自动更新从表。更新从表,主表不变

     

    SET NULL

    删除:删除主表时自动更新从表值为NULL。删除从表,主表不变

    更新:更新主表时自动更新从表值为NULL。更新从表,主表不变

     

    外键约束属性: RESTRICT | CASCADE | SET NULL | NO ACTION  外键的使用需要满足下列的条件:

      1. 两张表必须都是InnoDB表,并且它们没有临时表。

      2. 建立外键关系的对应列必须具有相似的InnoDB内部数据类型。

      3. 建立外键关系的对应列必须建立了索引。

      4. 假如显式的给出了CONSTRAINT symbol,那symbol在数据库中必须是唯一的。假如没有显式的给出,InnoDB会自动的创建。

      如果子表试图创建一个在父表中不存在的外键值,InnoDB会拒绝任何INSERT或UPDATE操作。如果父表试图UPDATE或者DELETE任何子 表中存在或匹配的外键值,最终动作取决于外键约束定义中的ON UPDATE和ON DELETE选项。InnoDB支持5种不同的动作,如果没有指定ON DELETE或者ON UPDATE,默认的动作为RESTRICT:

      1. CASCADE: 从父表中删除或更新对应的行,同时自动的删除或更新自表中匹配的行。ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持。

      2. SET NULL: 从父表中删除或更新对应的行,同时将子表中的外键列设为空。注意,这些在外键列没有被设为NOT NULL时才有效。ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支持。

      3. NO ACTION: InnoDB拒绝删除或者更新父表。

      4. RESTRICT: 拒绝删除或者更新父表。指定RESTRICT(或者NO ACTION)和忽略ON DELETE或者ON UPDATE选项的效果是一样的。

      5. SET DEFAULT: InnoDB目前不支持。

      外键约束使用最多的两种情况无外乎:

      1)父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败;

      2)父表更新时子表也更新,父表删除时子表匹配的项也删除。

      前一种情况,在外键定义中,我们使用ON UPDATE CASCADE ON DELETE RESTRICT;后一种情况,可以使用ON UPDATE CASCADE ON DELETE CASCADE。

    展开全文
  • SQL Server查询外键约束删除外键约束: 'WC_User'是表名 exec sp_helpconstraint 'WC_User' select name  from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id ...
  • Sql 多重外键约束

    千次阅读 2014-10-14 23:40:13
    多重外键约束这个名称可能并不准确,它是多个外键约束情况的一个特例,它指的是外键表有存在两个及以上外键关联到同一个主键表,例如一个部门,有正副两个管理者 首先看看不含多重外键的多个外键约束的一般情况,...
  • SQL seriver 用T-sql 创建外键 1.建表时创建外键 create table 从表 ... “foreign key (关联...--添加外键约束(关联字段要用括号括起来) ALTER TABLE 从表 ADD CONSTRAINT 约束名 FOREIGN KEY (关...
  • sql外键约束和主键约束A primary key is a column or a set of columns that uniquely identifies each row in a table. 主键是一列或一组列,它们唯一地标识表中的每一行。 It’s called a “constraint” ...
  • SQL外键约束

    2020-07-25 14:47:23
    SQL外键约束外键约束添加外键约束删除外键约束 外键约束 一个表中的 FOREIGN KEY(外键) 指向另一个表中的 PRIMARY KEY(主键) FOREIGN KEY 约束用于预防破坏表之间连接的动作 FOREIGN KEY 约束也能防止非法数据...
  • SQL92标准中定义了几种外键改变后,如何处理子表记录的动作,其中包括:限制Restrict:这种方式不允许对被参考的记录的键值执行更新或删除的操作;置为空Set to null:当参考的数据被更新或者删除,那么所有参考它...
  • SQL - 外键约束

    2015-07-30 10:22:44
    我在 CSDN 学院发布的 SQL 入门视频教程。 外键用于连接两个表。外键也称为引用键。 外键是一个或一组匹配另一个表的主键的列。 如果一个表存在主键,那么主键列上的值不能重复。 示例 考虑以下两个表: ...
  • SQL server 外键约束操作

    万次阅读 2019-03-25 14:49:21
    创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只有主键没有外键时不行的。 建外键的前提是此外键必须是另外一个表的主键。建外键的步骤: 第一步、打开要建外键的表设计器,...
  • [MS SQL]外键约束

    千次阅读 2014-11-19 15:40:37
    外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。这里以MySQL为例,总结一下3种外键约束方式的区别和联系。 这里以用户...
  • mysql SQL设置外键约束ON DELETE CASCADE

    千次阅读 2017-06-19 21:47:16
    摘要: 当删除父节点时,由...第一步:删除原有的外键约束 ALTER TABLE child_table DROP FOREIGN KEY `FK_Reference_2` ; 第二步:添加新的外键约束,增加ON DELETE CASCADE ALTER TABLE child_table   ADD C
  • SQL外键约束

    千次阅读 热门讨论 2014-01-27 14:14:39
    用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的 值,可以为空也可不为空。 作用: 外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2
  • SQL sever 删除外键约束

    2019-10-23 08:30:45
    在进行数据库插入操作时,遇到了问题,考虑先删除外键 法一、 法二、用SQL(找到外键的名称) 大功告成!
  • SQL Server 2012 外键约束(定义外键、删除外键)

    万次阅读 多人点赞 2019-04-21 20:00:26
    文章目录准备知识定义外键使用SSMS工具定义外键使用SQL方式定义外键删除外键使用SSMS工具删除外键方式一:在对象资源管理器中删除主键方式二:在表设计器中删除主键使用SQL方式删除外键 准备知识     外键...
  • SQL Server 外键约束的例子

    千次阅读 2012-08-13 11:12:18
    外键约束的测试表与测试数据 -- 创建测试主表. ID是主键. CREATE TABLE test_main ( id INT, value VARCHAR(10), PRIMARY KEY(id) ); -- 创建测试子表. CREATE TABLE test_sub ( id INT, main...
  • SQLSERVER 外键约束 以及它的级联删除

    千次阅读 2010-04-29 10:27:00
    sql server中建立外键约束有3中方式:1.enterprise manager中,tables,design table,设置table的properties, 可以建立constraint, reference key;2.enterprise manager中,diagrams, new diagrams,建立两个表的...
  • 一、主键约束(PRIMARY KEY) `alter table class add constraint SYS_C0011099 primary key(id);` class为表名,id为列名,SYS_C0011099为主键名称。 二、唯一性约束(UNIQUE) 对于UNIQUE约束来讲,索引是必须的。...
  • 如在管理系统中,人员表和部门信息表,在生成一个人员信息时,人员的部门编码必须存在于部门表中,当该部门名称等信息发生变化时,人员表的部门信息也需要同步更新,在这种场景下,显然使用外键关联以及联级更新/删除就会...
  • sql server中建立外键约束有3中方式:1.enterprise manager中,tables,design table,设置table的properties, 可以建立constraint, reference key;2.enterprise manager中,diagrams, new diagrams,建立两个表的关系...
  • sql server删除外键约束

    千次阅读 2014-05-25 16:23:39
    x先找出约束名字 然后删除它 我给个例子 --测试环境 --主表 create table test1(id int primary key not null,value int) insert test1 select 1,2 go --从表 create table test2(id int references ...
  • sql 外键约束

    2021-07-14 23:48:28
    创建有外键约束的数据库表 首先创建父表 这里用的学生信心录入为例子 -- 创建父表:班级表 create table t_class( cno int (4) primary key auto_increment, cname varchar(10) not null, room char(4) ) 再...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,766
精华内容 25,506
关键字:

sql删除外键约束