精华内容
下载资源
问答
  • 本节文章主要介绍了oracle删除主键查看主键约束及创建联合主键,示例代码如下,需要的朋友可以参考下
  • Oracle修改主键约束  项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空: SQL> select count(*) from t_wlf_record t where t...

     

    Oracle修改主键约束

      项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空:

    SQL> select count(*) from t_wlf_record t where t.acceptinvitetime is null;
     
      COUNT(*)
    ----------
             0

      那么我们需要先把这个字段修改为非空字段:

    alter table T_WLF_RECORD modify ACCEPTINVITETIME not null;

      接着才能修改主键约束,约束无法直接修改,只能先删后插:

    alter table T_WLF_RECORD drop constraint SYS_C0018888;
    alter table T_WLF_RECORD add constraint PK_T_WLF_RECORD PRIMARY KEY (INVITEEMSISDN, INVITERMSISDN, ACTIVITYID, ACCEPTINVITETIME);

      最后把注释改下:

    comment on column T_WLF_RECORD.ACCEPTINVITETIME is '接受邀请时间(联合主键)';

      作为一个专业人员,我们应该把回滚语句也写好:

    alter table T_WLF_RECORD drop constraint PK_T_WLF_RECORD;
    alter table T_WLF_RECORD add constraint SYS_C0018888 PRIMARY KEY (INVITEEMSISDN, INVITERMSISDN, ACTIVITYID);
    alter table T_WLF_RECORD modify ACCEPTINVITETIME null;
    comment on column T_WLF_RECORD.ACCEPTINVITETIME is '接受邀请时间';

      最后总结下:约束的作用是保证数据的唯一性和完整性,比如主键约束你作为主键的字段不能为空,唯一约束你不能插入相同数据。具体区分如下:

      1、主键约束要求列值非空,而唯一键约束和唯一索引不要求列值非空,都不能有重复数据;

      2、主键约束和唯一键约束会隐式创建同名的唯一索引,当主键约束或者唯一键约束失效或被删掉时,隐式创建的唯一索引会被删除。

     

     

    展开全文
  • 开始看 《精通Oracle ...卢涛 译oracle命名主键约束的原因salary_grade_id integer constraint salary_grade_pk primary key; 如果salary_grade_id中已经有1,在继续插入1这条数据时,就会报错,而错误信息中

    开始看
    《精通Oracle Database 12c SQL & PL/SQL 编程(第三版)》
    作者:Jason Price 著
    卢涛 译

    oracle命名主键约束的原因

    salary_grade_id integer constraint salary_grade_pk primary key;
    如果salary_grade_id中已经有1,在继续插入1这条数据时,就会报错,而错误信息中会显示主键约束名,就会显示salary_grade_pk。

    展开全文
  • 原文地址:Oracle-主键约束、唯一约束与外键约束 作者:舒风星 1.主键约束: 一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。 2.Unique约束:一...

    原文地址:Oracle-主键约束、唯一约束与外键约束 作者:舒风星

    1.主键约束: 一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。

    2.Unique约束:一个表可以有多个Unique约束,Unique的字段可以为NULL。

    3.主键与Unique:不同点在于一个表只能有一个主键约束,但是可以有多个Unique约束;主键所有字段都是not null,unique可以是null。相同点在于都能保证唯一性。

    4.主键、Unique与索引:主键约束与Unique约束默认会成为索引。当主键和Unique有多个字段时,有索引前缀性问题,即where语句中的条件必须有主键或者unique的第一个字段,否则不会使用索引。

    5. 外键与主键、Unique:外键必须为另外一张表(父表)的主键或者唯一索引。如果要添加记录,而父表中没有则报错。反之,如果要删除父表中的记录,而子表中有记录,也会报错。但是如果在创建外键约束时,如果使用on delete cascade,则删除父表中数据时,不报错而直接把子表关联的数据删除。 如果要删除父表,则需要加上cascade constraints,此时子表的foreign key被去除,表中记录保持不变。
    --标红色的部分是外企的一道DBA面试题。其实主键约束和unique约束的区别也可以出一道题。
    展开全文
  • 关于ORACLE添加主键约束语句

    千次阅读 2019-06-20 10:30:21
    今天在复习ORACLE,看到添加主键约束这一部分,如果在创建表的时候没有添加主键,那么可以通过语句来添加主键,如下: ALTER TABLE table_name ADD CONSTRAINTS constraint_name PRIMARY KEY(column_name); 我...
    今天在复习ORACLE,看到添加主键约束这一部分,如果在创建表的时候没有添加主键,那么可以通过语句来添加主键,如下:
     ALTER TABLE  table_name
     ADD CONSTRAINTS  constraint_name PRIMARY KEY(column_name);
    

    我看到这里我产生了一个疑惑,为什么这里要写一个constraint_name(constraint是约束的意思),想了一会没想通,但是知道看到了下面。
    当你 移除主键约束的时候语句是这样的:

    ALTER TABLE table_name
    DROP CONSTRAINT constraint_name;
    在这里豁然开朗,这个名字的设立可以对以后的约束的移除提供了方便,这样理解和会帮助记忆语法。
    另外,当我们遇到困难一筹莫展的时候,不如先保留往下再看看,有时候会有意想不到的结果。

    展开全文
  • 1.主键约束: 一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。 2.Unique约束:一个表可以有多个Unique约束,Unique的字段可以为NULL。 3.主键与...
  • Oracle修改主键约束

    2018-10-09 15:31:00
    项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空: SQL> select count(*) from t_wlf_record t where t.acceptinvitetime is ...
  • Oracle主键约束.pdf

    2021-09-14 13:13:52
    Oracle主键约束.pdf
  • oracle“删除”主键约束的方法有两个 1:alter table 表名 drop primary key; 这个是把主键从表中去除,而不是真正的删除主键 例子: 创建表:create table test_table_students (student_id number not null,...
  • oracle主键约束的添加和删除

    千次阅读 2008-10-05 09:55:00
    oracle主键约束添加删除 1、创建表的同时创建主键约束 一、无命名 create table accounts ( accounts_number number primary key, accounts_balance number ); 二、有命名 create table accounts ( accounts_...
  • Oracle主键约束

    千次阅读 2017-11-22 11:39:28
    主键约束可以由多个字段构成,这种情况被称为联合主键或复合主键   三 主键约束 1、在创建表时设置主键约束 CREATE TABLE tabl_name( column_name datatype PRIMARY_KEY,... ) SQL> create table
  • ORACLE主键约束

    2018-12-04 15:11:26
    约束中使用函数和布尔运算符 create table invoice_check_others ( invoice_id number, invoice_name varchar2(20), invoice_type int, invoice_clerk varchar2(20), invoice_total number(9...
  • oracle主键约束添加删除

    千次阅读 2010-02-20 00:14:00
    1、创建表的同时创建主键约束 一、无命名 create table accounts ( accounts_number number primary key, accounts_balance number ); 二、有命名 create table accounts ( accounts_number number primary...
  • 问题再现问题描述在oracle数据库中明明主键已经删除了,但是插入数据的时候还是报错违反唯一约束解决方案引起该现象的原因是因为当先创建唯一约束后再创建主键约束的情况下,如果使用普通方法删除主键约束后,唯一...
  • ORACLE中,可以在创建主键约束的时候自动创建唯一索引,也可以先创建唯一索引,然后再基于这个唯一索引来创建主键约束。后一种方式有一个好处,在 需要对数据量比较大而且读写频繁的OLTP表创建主键约束的时候,...
  • rror: ora-02292: integrity constraint <constraint name> violated - child record found Cause: You tried to Delete a record from a ... 提示找到子记录存在,数据不可修改或删除,因为该表主键
  • ORACLE主键约束跟唯一索引的区别

    千次阅读 2014-08-06 23:43:41
    分类: DB 2011-12-03 21:34 611人阅读 评论(0) 收藏 举报 ...1、 分别用两种方法创建主键 create table test1(id number,name varchar2(10)); insert into test1 values(1,'t1');

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,163
精华内容 18,065
关键字:

oracle查询主键约束