`
hanqingwxf2008
  • 浏览: 51299 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

主键与ID

阅读更多

  默认的主键为ID,我们可以如下来修改主键,

 

 

  class LegacyBook < ActiveRecord::Base
     self.primary_key = "isbn"
    end

     ActiveRecord会负责为你创建的每条记录新建主键值,他们是递增的整数,但不保证连续,然而,如果我们指定了主键字段,就必须同时负责将每条新记录的主键设为唯一的值,我们仍旧可以通过名为 id 的属性来设置主键值。也就是说,只要使用 ActiveRecord,主键字段在对象中的属性名称永远都是 id,primary_key=声明只是用于指定数据库表中的主键字段。

分享到:
评论

相关推荐

    Python3 操作 MySQL 插入一条数据并返回主键 id的实例

    可以使用标签在insert方法前通过执行SELECT LAST_INSERT_ID()来获取最新插入行的id,这与Python中使用cursor.lastrowid和conn.insert_id()的方法类似,都是为了在多表操作中能够获得并使用新插入数据的主键。...

    主键与外键的创建

    本文将深入探讨主键与外键的创建,帮助初学者更好地理解这两个概念。 **主键(Primary Key)**是用于唯一标识数据库表中每条记录的字段或一组字段。主键的特性包括: 1. 唯一性:主键的值在表中必须是唯一的,不...

    复合主键@IdClass

    ### 复合主键与@IdClass的理解与应用 #### 一、引言 在软件开发过程中,特别是数据库设计阶段,经常遇到需要通过多个字段来唯一标识一条记录的情况,即所谓的复合主键。复合主键相较于单一主键,在数据管理方面...

    初探SQL语句复合主键与联合主键

     所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键。 比如 create table test ( name varchar(19), id number, value varchar(10), primary key (name,id) )  ...

    oracle 创建id主键序列 脚本

    创建表时,我们可以将序列与主键约束关联,使得每次插入新行时自动获取序列的下一个值: ```sql CREATE TABLE table_name ( id NUMBER PRIMARY KEY DEFAULT seq_id.NEXTVAL, column2 VARCHAR2(50), column3 ...

    hibernate 无主键表映射

    在Hibernate中,对无主键表的操作与普通实体基本相同,只是在保存和查询时需要传入整个复合主键对象。例如,创建一个新的订单: ```java OrderKey key = new OrderKey(); key.setCustomerId("123"); key.setOrderId...

    数据库主键的五种设计方法

    但是,这种方法存在一些缺点,如在手动要插入指定 ID 的记录时会显得麻烦,尤其是在系统与其他系统集成时,需要数据导入时,很难保证原系统的 ID 不发生主键冲突。 第三种:Max 加一 这种方法是由于自动编号存在...

    Hibernate各种主键生成策略与配置详解

    Hibernate不参与主键的生成过程,这意味着你需要在调用save()之前通过setter方法为对象设置一个唯一的ID。这种方法虽然灵活,但可能导致并发问题,因此不推荐在多线程或分布式环境中使用。 配置示例: ```xml &lt;id ...

    数据主键和外键的错误总结

    如果没有现成的字段可以作为主键,可以考虑创建一个独立的自增ID作为主键。 2. **主键冗余**:有时候表中可能会存在多个潜在的主键候选,但实际只需要定义一个主键。过多的候选主键可能导致表结构复杂化。 - **...

    数据库主键生成资料资源

    在进行数据库设计时,不仅要关注主键的生成,还要注意主键与其他字段的关系,比如避免使用外键作为主键,防止级联删除带来的风险;同时,也要注意避免过度依赖主键,因为主键只是用来标识记录,不应当承载过多的业务...

    hibernate复合主键设置

    在业务代码中,创建和操作复合主键的实体对象与普通实体对象并无太大区别。只需要确保在创建新的`OrderItem`实例时,为其`id`属性提供正确的`OrderItemId`实例即可。 总结,复合主键在Hibernate中是通过`@...

    hibernate联合主键全攻略

    这里,`UsersPK`是用于封装联合主键值的Java类,其结构应当与`&lt;composite-id&gt;`标签内的配置相匹配。 #### 2. Java实体类设计 在Java端,我们需要创建一个对应于联合主键的实体类,如`UsersPK`,通常会包含与`...

    Hibernate复合主键

    例如,RecordId 类就是一个复合主键类,它分别与 User 类和 Goods 类具有一对一的关系。 equals 方法的实现 equals 方法是用于比较两个对象是否相等的。在复合主键类中,equals 方法需要根据多个字段来比较两个...

    mysql雪花算法生成唯一整型ID主键的实现方法

    MySQL 雪花算法生成唯一整型ID主键的实现主要针对大数据环境下,需要大量生成全局唯一ID的需求。雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性...

    hibernate复合主键配置和使用

    《Hibernate复合主键配置与使用详解》 在Java开发中,Hibernate作为一款强大的ORM框架,大大简化了数据库操作。然而,当我们面临复杂的数据表结构,尤其是涉及到复合主键时,如何在Hibernate中进行配置和使用就显得...

    hibernate使用主键关联的一对一关系

    @MapsId // 表示EntityB的id字段与EntityA的id字段相同 private Long id; @OneToOne @PrimaryKeyJoinColumn // 指定主键关联 private EntityA entityA; } ``` ### 关联属性详解 - `cascade`: 这个属性定义了...

    JPA中的联合主键

    在Java Persistence API (JPA) 中,联合主键(Composite Key)是指由两个或更多个字段共同组成的主键,这与单字段主键(Single Field Primary Key)相对。这种设计模式通常用于那些需要多个属性来唯一标识实体的情况...

    ssh多主键插入

    例如,在一个学生选课系统中,可能需要将“学生ID”和“课程ID”组合起来作为多主键,以准确区分每个学生所选的不同课程。 ### SSH框架中的多主键插入 在SSH框架中处理多主键插入,主要涉及以下几个方面: #### 1...

    Hibernate主键策略-sequence

    Hibernate通过`org.hibernate.id.SequenceGenerator`类来实现序列主键生成器。在`nextValue()`方法中,它会与数据库进行交互,获取序列的下一个值。这个过程涉及到JDBC操作,包括SQL的执行和结果的处理。 3. **...

Global site tag (gtag.js) - Google Analytics