精华内容
下载资源
问答
  • 数据库联合主键

    千次阅读 2013-08-09 00:38:52
    联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。  比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,...

    联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。


         比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了,因为会有重复。那么你可以再使用个订单序列号bill_seq来作为区别。把bill_no和bill_seq设成联合主键。即使bill_no相同,bill_seq不同也是可以的。

    举例运用:购物网站时的购物车,一个用户只有一个购物车,但一个购物车需要多种商品时,或是一张订单有多种商品时,即可用“联合主键”。

    展开全文
  • Oracle数据库联合主键

    千次阅读 2018-09-13 01:25:03
    1、定义:  主键:在Oracle中,主键指能唯一标识一条记录的单个... 数据表的联合主键组合不允许重复,即同一行的数据,联合主键所属的列数据组合不能相同。  用来通过多个字段值去确定本条数据的唯一性 3、规...

    1、定义:

          主键:在Oracle中,主键指能唯一标识一条记录的单个数据表列或联合的数据表列(联合主键|复合主键)。主键用到的数据                   表列数据不能包含空值。而且,一张表只能包含一个主键。

    2、作用:

        数据表的联合主键组合不允许重复,即同一行的数据,联合主键所属的列数据组合不能相同。

       用来通过多个字段值去确定本条数据的唯一性

    3、规范:

        在Oracle数据库中,联合主键的列不能超过32个。主键可以在创建表时定义或者通过ALTER TABLE语法定义

    4、使用:

       1)、创建表时添加联合主键:示例:

    create table test
    (sno char(12),
     name char(4),
    CONSTRAINT PK_test PRIMARY KEY (sno,name) -- 联合主键
    );

       2)创建表之后追加联合主键:

    alter table 表名 add constraint pk_tab2 primary key (sno,name);

    5、禁用主键

    语法:

    ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
    

    示例:

    alter table tb_employees disable constraint tb_employees_pk;
    

    6、启用主键:

    语法:

    ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;

    示例:

    alter table tb_employees enable constraint tb_employees_pk;
    

    6、删除主键:

    语法:

    ALTER TABLE table_name DROP CONSTRAINT constraint_name;
    

    示例:

    alter table tb_employees drop constraint tb_employees_pk;
    alter table tb_departments drop constraint tb_departments_pk;
    alter table TB_PK_EXAMPLE drop constraint TB_PK_EXAMPLE_PK;
    alter table TB_SUPPLIER_EX drop constraint TB_SUPPLIER_EX_PK;
    

     

    展开全文
  • 数据库 联合主键 的含义

    千次阅读 2018-09-08 14:50:02
    联合主键一般用于在一条数据可能有重复的情况下,用另一条数据去保持其唯一性 比如有两个字段:name , phone name 字段是可能重复的,而 phone 是唯一的 这时在创建数据表的时候可以在末尾加上: PRIMARY KEY...

    联合主键一般用于在一条数据可能有重复的情况下,用另一条数据去保持其唯一性

    比如有两个字段:name , phone
    name 字段是可能重复的,而 phone 是唯一的
    这时在创建数据表的时候可以在末尾加上:
    PRIMARY KEY(name, phone)
    表示用 name 与 phone 构成联合主键,复合主键以保持记录的唯一性

    展开全文
  • PK数据库 联合主键和自增主键

    千次阅读 2019-01-09 14:56:57
    主键主键是用来干嘛的?一般来说是为了建立唯一标识,建立索引的。 主键的使用目的: a.为了保证数据查找唯一; b.提高存储效率和索引效率。 索引:如果表的读操作少或者没有,索引效率会高,如果表的写操作较...

    主键:主键是用来干嘛的?一般来说是为了建立唯一标识,建立索引的。

    主键的使用目的:

    a.为了保证数据查找唯一;

    b.提高存储效率和索引效率。

    索引:如果表的读操作少或者没有,索引效率会高,如果表的写操作较多或者大量,建立索引会慢。

    主键的设置方法有3种:

    一种是设置自增长主键,第二种是采用业务主键,第三种是生成唯一序列(使用uuid/guid);
    如何选择主键设置方式:

    必须按情况来看:

     1.使用业务联合主键:

    a.是否绝大部分查询都是能用上联合主键的查询,并且没有其它查询方式join到这个表,也没有其它索引和外键,那么适合联合主键+cluster key,这样查询效率高一些。

    b.联合主键和自增主键在查询上没什么性能上的区别(前提是索引相同,运用得当)。写的性能上是有区别的,因为联合主键会使用更多的block去创建索引,所以在写操作上性能要低一些。

    2.使用生成唯一的序列
     a.如果不满足使用自增的要求,则建议优先使用字符主键。类似网站数据库,可以采用uuid、guid这类无规则字符做主键。因为字符主键查询速度不比自增主键慢。

    b.UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),这样对于分库分表的情况就会很适用。UUID的唯一缺陷在于生成的结果串会比较长。

    c.防止注入式攻击,当我们使用主键自增的时候,需要删除一个东西的时候,一般都是id=?。这样的话我就可以在url中修改这个id的值,这样可能就被人删除了其他东西,UUID这个就是给主键id加上一层锁,使它不暴露给用户;

    3.使用自增主键的场景:

    其它大部分情况仍然适合自增主键。

    展开全文
  • 数据库联合主键概念

    2015-05-22 09:38:56
    联合主键就是用2个或2个以上的字段组成主键。 用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引
  • 急救,如果这数据库中使用工号(不可使用递增)和日期做联合主键,来确定查询数据的唯一性,我该怎么处理
  • 废话【我我我的第二篇CSDN,在做学校的web项目,是一个关于会议管理的系统,会议表有个sessionid作为主键,会议成员表...那么如果把联合主键的其中一个属性作为外键呢。】 步骤如下 建表 session表 mysql> create...
  • 网上查看资料的时候,偶然看到一篇文章谈到mysql联合主键自增长的问题,该文章提到:   当多列被设为联合主键时,auto_increment属性得列并不是自顾自得一味的增长。而是配合其他主键的列。例如: id和vid为联合...
  • 数据库之主键、联合主键

    千次阅读 2019-09-18 22:41:43
    数据库联合主键:可以将多个列作为主键。(当多个列一起作为主键时,这里面的列均不能为空,但列值可以重复(不能所有的列值均一样,至少有一个不同)) 当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键。一...
  • 数据库主键外键联合主键 主键类型 所有数据库表必须具有一个主键列。 主键唯一地标识表中的一行,因此它受到以下约束的约束: 独特 非空 不可变的 选择主键时,我们必须考虑以下方面: 主键可用于通过...
  • 【基础最重要】 环境:SSH框架下(struts2 + spring + hibernate)+oracle数据库 联合主键类的写法及在oracle数据库中建表sql语句
  • 数据库联合主键 删除

    千次阅读 2010-01-08 19:49:00
    关于数据库联合主键或者级联的删除作个笔记....code from 超哥。 alter table jounalmessage drop Foreign_Key_Name;alter table journalmessage add constraint kaho foreign key(user_id,journal_id) references ...
  • [数据库]联合主键(复合主键)

    万次阅读 2018-07-05 10:41:13
    在我的认知里面,联合主键和复合主键其实是一个意思,所以在这里我统称为联合主键 其实这个不难理解,为什么要有联合主键,因为当只有一个字段作为主键时,会有重复的情况,这时需要有2个(以上)的字段共同作为...
  • 复合主键数据库表的主键由两个及以上的字段组成。 例如: CREATE TABLE `asm_device_config_info` ( `asmModel` varchar(32) NOT NULL COMMENT '自助机型号', `deviceType` varchar(32) NOT ...
  • 数据库多个主键(联合主键

    千次阅读 2017-09-04 10:47:51
    创建某表,需要两个主键(INST_ID,INST_RESP_CODE) CREATE TABLE CODE_CONVERTER_20170806 ( INST_ID CHARACTER(4) NOT NULL, INST_RESP_CODE VARCHAR(32) NOT NULL, TRANS_CODE VARCHAR(8) NOT NULL, INST_...
  • Oracle联合主键自增

    2017-12-26 11:08:51
    Oracle数据库联合主键的自增
  •  上述提到,可以对 student_id和 course_id做联合主键和唯一索引,均可以实现在数据库层面对关系表中异常数据做出限制,我们如何选择呢? 1.使用联合主键限制  如果是在最初建关系表t_student_course_rel 的...
  • 复合主键数据库表的主键由两个及以上的字段组成。  例如: CREATE TABLE `asm_device_config_info` ( `asmModel` varchar(32) NOT NULL COMMENT '自助机型号', `deviceType` varchar(32) NOT NULL COMMENT '...
  • 很多时候我们在数据库设计中都会遇到这样的问题: 有两个表 ,例如(红色的是主键) 学生(学号,姓名,性别,专业号,班级号) student (sno,sname,sex,spno,class_no); 专业(专业号,专业名称,上课学时); ...
  • 数据库创建联合主键(MySql)

    千次阅读 2014-11-02 10:56:42
    demo CREATE TABLE applicant( uid INT NOT NULL, tid INT NOT NULL, PRIMARY KEY(uid,tid) )
  • 数据库复合主键

    千次阅读 2018-03-28 17:57:29
    主键是唯一的索引,那么为何一个表可以创建多个主键呢?其实“主键是唯一的索引”这话有点歧义的。举个例子,我们在表中创建了一个ID字段,自动增长,并设为主键,这个是没有问题的,因为“主键是唯一的索引”,ID...
  • 数据库修改主键的方法

    万次阅读 2018-05-11 11:20:04
    重设主键字段有时数据库操作时需要将一个主键修改为联合主键或者把主键改为其他列,这时候单纯的add primary key是没有用的,必须先删除主键约束再重新添加。ORACLE:1、select constraint_name from user_...
  • 数据库一对多 联合主键

    千次阅读 2018-08-16 20:00:30
    用户ID, 图片ID (用户ID和图片ID建联合主键), 序号(图片在该用户的显示顺序)…. 取图片如: 隔行取图片(取偶数行): SELECT A.图片ID, B.图片名称, …… FROM 用户– 图片关系表 A INNER JOIN 图片表 B...
  • 数据库--联合主键

    2013-06-21 17:37:05
    复合键最明显的优点是可以减少数据库表的数量。 复合键的缺点却也是很明显的: 1.使得表与表之间的相互依赖性程度加深; 2.会出现更为复杂的约束、规则; 3.对用户更新数据的限制大大提高; 4.复合键的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,256
精华内容 22,902
关键字:

数据库联合主键