精华内容
下载资源
问答
  • SQL语句如下 create table user_role( userid number(10), rid number(10), constraint pk_u_r primary key(userid,rid) ); 如果插入的userid和rid和已有的一条记录都一致就会违反唯一性约束,拒绝插入

    SQL语句如下

    create table user_role(
           userid number(10),
           rid number(10),
           constraint pk_u_r primary key(userid,rid)
    );
    

    如果插入的userid和rid和已有的一条记录都一致就会违反唯一性约束,拒绝插入

    展开全文
  • ---去重 select XK_XDR_MC, XK_LYDWDM, XK_XKJGDM, XK_WSH, XK_JDRQ, XK_XKBH, count(1) from T_XZxks group by XK_XDR_MC, XK_LYDWDM, XK_XKJGDM, XK_WSH, XK_JDRQ, XK_XKBH having count(1) >...

     

    ---去重
    select XK_XDR_MC, XK_LYDWDM, XK_XKJGDM, XK_WSH, XK_JDRQ, XK_XKBH, count(1)
    from T_XZxks
    group by XK_XDR_MC, XK_LYDWDM, XK_XKJGDM, XK_WSH, XK_JDRQ, XK_XKBH
    having count(1) > 1
    
    --删除重复
    
    delete from  T_XZxks where rowid not in(
     select max(rowid) from T_XZxks group by(XK_XDR_MC, XK_LYDWDM, XK_XKJGDM, XK_WSH, XK_JDRQ, XK_XKBH));
    

     

    展开全文
  • 本节文章主要介绍了oracle删除主键查看主键约束及创建联合主键,示例代码如下,需要的朋友可以参考下
  • Oracle联合主键自增

    2017-12-26 11:08:51
    Oracle数据库联合主键的自增

    新建表
    这里写图片描述

    CREATE TABLE SCHEDULES
    (
      SCHEDULES_ID NUMBER(19) DEFAULT NULL          NOT NULL,
      USER_ID      NUMBER(19) DEFAULT NULL          NOT NULL
        CONSTRAINT SCHEDULES_USERS_USER_ID_FK
        REFERENCES USERS
        ON DELETE CASCADE,
      DATE_TIME    DATE DEFAULT NULL                NOT NULL,
      EVENT        VARCHAR2(100 CHAR) DEFAULT NULL  NOT NULL,
      CONSTRAINT SCHEDULES_ID_USER_ID_PK
      PRIMARY KEY (SCHEDULES_ID, USER_ID)
    )

    SCHEDULES_ID和USER_ID是联合主键
    **要实现的是:**schedules_id根据user_id的不同自增,例如在user_id=1中,schedules_id最大是3,那么新插入一条user_id=1的记录,使schedules_id=4.user_id=2中,schedules_id最大是5,那么新插入一条user_id=2的记录,使schedules_id=6.

    create or replace trigger tri_scheduleid_insert
    before insert on SCHEDULES
    for each row
      DECLARE
      begin
        select MAX(SCHEDULES_ID)+1 into :new.SCHEDULES_ID from SCHEDULES WHERE USER_ID=:new.USER_ID;
      end tri_scheduleid_insert;

    直接使用触发器实现,不用创建sequence。

    但是当MAX(SCHEDULES_ID)不存在时,会无法插入
    修改后触发器的创建是

    CREATE OR REPLACE TRIGGER tri_scheduleid_insert
    BEFORE INSERT ON SCHEDULES
    FOR EACH ROW
      DECLARE
        nextid NUMBER;
      BEGIN
        SELECT MAX(SCHEDULES_ID) + 1
        INTO nextid
        FROM SCHEDULES
        WHERE USER_ID = :new.USER_ID;
        IF INSERTING
        THEN
          IF nextid > 0
          THEN
            :new.SCHEDULES_ID := nextid;
          ELSE :NEW.SCHEDULES_ID := 1;
          END IF;
        END IF;
    
      END tri_scheduleid_insert;

    首先定义一个变量nextid来保存查询得到的最大值+1,如果nextid大于0,则说明插入记录的user_id的值存在,schedules_id=nextid;否则
    说明插入记录的user_id的值不存在,使schedules_id=1;
    注意: :new.SCHEDULES_ID := nextid;
    赋值等号左边的“:”

    同样的思考应该可以不创建sequence来创建触发器实现主键的自增。我没有做,毕竟创建sequence还是有好处的。这里联合主键的自增我没找到有关sequence的实现。如果有更好的办法请留下你的建议。

    展开全文
  • Oracle联合主键

    2018-11-20 08:59:00
    转...alter table tablename add constraint unionkeyname primary key (column1,column2); 上面语句中: tablename为要添加联合约束的表 unionkeyname为添加的联合约束的名称 column1,column...

    转https://www.cnblogs.com/king-xg/p/6721272.html

    alter table tablename add constraint unionkeyname primary key (column1,column2);
    

    上面语句中:

    tablename为要添加联合约束的表

    unionkeyname为添加的联合约束的名称

    column1,column2为联合主键作用的两个列列名

    转载于:https://www.cnblogs.com/miye/p/9986977.html

    展开全文
  • 1.联合主键 联合主键:表的主键是由多个字段构成的,称为“联合主键”。 联合主键的约束:构成联合主键的每个字段的值可以重复,但是组合在一起不能重复 例如:下面的sc表中的S#和C#两个字段构成了联合主键,此时会...
  • Oracle 联合主键

    2016-04-22 14:27:00
    alter table NCJSYD add constraints NCJSYD_pk primary key (YR,DQ); 转载于:https://www.cnblogs.com/wsea/p/5421178.html
  • Oracle主键和联合主键

    千次阅读 2019-04-03 08:11:59
    oracle数据库中,一张表中的每一行数据被称为一条记录。一条记录通常都是由多个字段所组成的。 例如,employees表的四行记录: 每一条记录都包含者若干个已经定义好的字段。同一个表的所有记录都有相同的字段...
  • Oracle数据库联合主键

    千次阅读 2018-09-13 01:25:03
     主键:在Oracle中,主键指能唯一标识一条记录的单个数据表列或联合的数据表列(联合主键|复合主键)。主键用到的数据 表列数据不能包含空值。而且,一张表只能包含一个主键。 2、作用:  数据表的联合主键组合...
  • oracle主键和复合主键(联合主键

    千次阅读 2019-09-02 17:57:03
    1.主键和复合主键,查询性能相同(索引高度相同,恰当的运用索引) 2.主键和复合组件,(update,insert)性能不同(因为复合主键会用更多的块来创建索引,所以update,insert性能低) 复合主键的原理 ...
  • [b]serviceaction 主键(orderno,actionno)[/b]其它表主键就是一个。 [code="java"]select sp.orderno,sp.deptno,sp.zb_ordertime, sp.consumer,sp.computertypeno,sp.servicetype, sp.computerid,sp....
  • Oracle创建联合主键

    千次阅读 2017-05-23 11:22:00
    先创建个表: 1)create table test ...CONSTRAINT PK_testPRIMARY KEY (sno,name) -- 联合主键 ); 2) 创建表之后追加联合主键: alter table 表名add constraint pk_tab2 primary key (sno,n...
  • 在创建主键的同时会生成对应的唯一索引,主键在保证数据唯一性的...联合主键只是让记录联合的那几个字段总体上是唯一的,比如id1 id2 id3三个列作为联合主键,那么在这个表中可以有多个id 为1的,但肯定只有一个1 0 0。
  • 最近在写项目的时候因为一些特殊原因会用到联合主键,当时并不知道怎么去写联合主键,后来在网上一直找方法,总结了一下的过程,因为是萌新,所以并没有写为什么这么去写,只是去写了怎么做的! 先设置联合主键 &...
  • Oracle查看主键、删除主键以及新增联合主键 主键是用于唯一标识表中的每一条数据的,不能重复也不能为null。一个表中不能有多个独立的主键,但是一个表中可以有联合主键(即多个字段组合)。 一、查看主键 ...
  • oracle 联合主键学习

    2012-11-08 10:54:08
    联合主键的含义联合主键的适用范围 http://www.cnblogs.com/askjacklin/archive/2012/07/22/2603925.html ...
  • 【基础最重要】 环境:SSH框架下(struts2 + spring + hibernate)+oracle数据库 联合主键类的写法及在oracle数据库中建表sql语句
  • oracle添加联合主键

    万次阅读 多人点赞 2014-08-13 15:59:16
    alter table tablename add constraint unionkeyname primary key (column1,column2); 上面语句中: tablename为要添加联合约束的表 unionkeyname为添加的联合...column1,column2为联合主键作用的两个列列名 ...
  • Oracle 联合主键问题

    2019-05-20 14:32:44
    请教下,我建了一个含有联合主键的表[img=https://img-bbs.csdn.net/upload/201905/20/1558333646_155774.png][/img],现在已经drop掉了表,但是主键没有被drop掉。因为我把这个表放在存储过程里的,要满足多次执行...
  • oracle 主键删除,联合主键的创建

    万次阅读 2014-07-23 19:16:20
    1,主键的删除  ALTER TABLE TABLENAME DROP PRIMARY_KEY 执行上面的SQL可以删除主键;如果不成功可以用 ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE...
  • name = au.constraint_name and au.constraint_type = 'P' and au.table_name = '表名(大写)' 查询某个表是否有联合主键 select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name =...
  • #机构信息表 T_GX_JGXX = Table('T_GX_JGXX',con.metadata, Column('YXJGDM', String(30), nullable=False,doc='银行机构代码'), Column('NBJGH', String(30), nullable=False,primary_key=True,doc="内部机构号" ),...
  • 联合主键批量查询

    千次阅读 2019-01-28 11:37:30
    工作所需查询数据,表中的是联合主键,即两个字段可以确认唯一一条数据,经过查询找到如下办法,mysql oracle均可执行,至于执行效率未知,有待考验。 原文地址:https://www.v2ex.com/t/430599 原原文地址(需要...
  • #机构信息表 T_GX_JGXX = Table('T_GX_JGXX',con.metadata, Column('YXJGDM', String(30), nullable=False,doc='银行机构代码'), Column('NBJGH', String(30), nullable=False,primary_key=True,doc="内部机构号" ),...
  • Oracle联合主键和复合主键的概念是不是一样的?在网上我看到的帖子,对这两种主键解释的也不是特别清楚,如果复合主键和联合主键不是一个概念的话,为什么写法是一样的?
  • 1. 联合索引 不包括主键,则索引应用是 TABLE ACCESS BY GLOBAL INDEX ROWID 2. 联合索引包含主键, INDEX FAST FULL SCAN 2的速度比1快 很多。以前从未听说联合索引要包含 主键的情况,这次通过 优化且和 生效...
  • oracle主键冲突 ORA-00001

    2021-05-10 15:44:30
    这是主键冲突的错误,如果该表有主键自增长,可以检查 oracle 的 sequence select SEQUENCE_OWNER, SEQUENCE_NAME, MIN_VALUE, MAX_VALUE, INCREMENT_BY, CACHE_SIZE, LAST_NUMBER from all_sequences where ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,365
精华内容 7,346
关键字:

oracle联合主键