问题标签 [composite-primary-key]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
404 浏览

sql-server-2005 - SQL Server 2005:在两个主键之一上设置自动增量时出错

我收到错误消息“当 IDENTITY_INSERT 设置为 OFF 时,无法在表‘表’中插入标识列的显式值。”

该表有两个主键,一个设置为自动递增,一个设置为 i 传入的值。

这在 SQL Server 2005 中可行吗?还是我错过了什么?

提前非常感谢。

0 投票
0 回答
790 浏览

composite-primary-key - Nhibernate外键作为复合键

嗨,我对 Nhibernate 很陌生,我正在研究一个项目,描述如下:

1 个“父母”表,其中包含 ParentName 和使用 IList 的一对多 ChildrenList,主键设置为 ParentId

1 个“儿童”表,具有包含 ParentID 作为键之一的复合主键

所以我像这样在Parents.hbm.xml中设置了一对多

和这样的 Children.hbm.xml

目前我正在使用 session.SaveOrUpdate 方法将带有一些子项列表的父对象保存到 MySQL 数据库中进行测试,但它总是失败并且只是说“无法插入”子对象

这是我的测试代码:

我已经为多个孩子测试了一个父母,并且孩子的主键设置为生成的 ChildrenId。这很好用。但不知何故,我不能使用复合键来做到这一点,我的猜测是,由于 Children 中的 ParentName 是一个主键,但只有在 Parent 中的 ParentName 被填充后才会被填充,就像那样。

另一个问题是,如果解决了上述问题,我可以用它来检索带有子列表的整个父 obj 吗?(我尝试过简单的单PK情况,但当孩子是复合键时似乎不起作用)

谢谢!

0 投票
2 回答
4765 浏览

database - 为什么主键必须是最小的?

主键是唯一标识表中行的一个属性或一组属性。但是主键不仅必须是唯一的,而且必须是最小的。为什么这是必要的?

0 投票
9 回答
1787 浏览

sql - 为什么我读到这么多关于使用复合键的负面意见?

我正在研究一个喜欢自动编号标识符的 Access 数据库。每个表都使用它们,除了一个,它使用由一个人的名字、姓氏和生日组成的键。无论如何,人们开始遇到很多重复的问题,因为表示关系的表可以保存相同的关系两次或更多。我决定通过为关系表实现复合键来解决这个问题,从那以后我就没有遇到过重复问题。

所以我想知道 Access 世界中复合键的不良代表是怎么回事?我想编写查询稍微困难一些,但至少您不必每次在前端输入甚至编辑数据时都进行大量检查。他们是令人难以置信的超级低效还是什么?

0 投票
2 回答
384 浏览

sql-server - SQL Server 2005 错误检索基于日期时间主键列的记录

我在 SQL Server 2005 中有一个带有复合主键的表,即外键 (INT) 和 DateTime 列。

当我运行 SQL 时,

有记录时没有返回记录。

一种选择是

但是,看起来……我真的必须求助于这个吗?还是因为我必须指定直到毫秒?或者有什么解决办法吗?

请帮忙。提前致谢。

0 投票
2 回答
82965 浏览

java - Hibernate:insertable = false,updatable = false 属于涉及外键的复合主键星座中的哪里?

在 Hibernate 或其他 ORM 中实现复合主键时,在使用标识关系的复合主键星座(作为 PK 的一部分的 FK)中,最多可以在三个位置放置 insertable = false、updatable = false:

  1. 进入复合 PK 类的 @Column 注释(仅限 @Embeddable 类)或
  2. 进入实体类的关联@JoinColumn/s 注解或
  3. 进入实体类的冗余PK属性的@Column注解(仅限@IdClass类)

第三种是使用 @IdClass 和 JPA 1.0 AFAIK 的唯一方法。请参阅http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Primary_Keys_through_OneToOne_Relationships。我将只考虑案例 1. 和 2。

问:通常将“insertable = false,updatable = false”放在哪个位置的首选?

关于这个问题,我遇到了 Hibernate 的问题。例如,Hibernate 3.5.x 会抱怨 Zips 表

和:

如您所见, country_code 列既是 PK 也是 FK。这是它的类:

实体类:

复合PK类:

将 insertable = false, updatable = false 放入实体类关联的 @JoinColumn 时,所有异常都会消失,一切正常。但是,我不明白为什么上面的代码不应该工作。可能是 Hibernate 有这个问题。所描述的是否是 Hibernate 错误,因为它似乎没有评估 @Column “insertable = false, updatable = false”?

从本质上讲,标准 JPA 方式、最佳实践或将“可插入 = 假,可更新 = 假”放在哪里的偏好是什么?

0 投票
1 回答
2570 浏览

python - Django - 多列主键

我想在 django 中实现多列主键。

我试图实现一个 AutoSlugField() 连接我的列值(外键/日期)......

模型.py:

当我传递以下参数时:

我试图向primary_key=Trueslug 添加参数...但它使用“-1”“-2”创建新实例...并且根本没有更新...

我错过了什么 ?

谢谢,

永安

0 投票
2 回答
4374 浏览

sql - 如何使用 Oracle 索引

我是一名几乎没有 Oracle 经验的 PHP 开发人员,负责使用 Oracle 数据库。

我注意到的第一件事是,这些表似乎没有我习惯在 MySQL 中看到的自动编号索引。相反,他们似乎从两个字段中创建了一个索引。

例如,我注意到其中一个索引是日期字段和外键 ID 字段的组合。日期字段似乎存储了整个日期和时间戳,因此组合相当独特。

如果索引名称是 PLAYER_TABLE_IDX 我将如何在我的 PHP 代码中使用这个索引?

我想通过这个索引引用一个唯一的记录(而不是在我的 SQL 查询的 WHERE 部分中使用两个 AND 子句)

任何建议 Oracle/PHP 专家?

0 投票
2 回答
9763 浏览

oracle - 在一个巨大的表中创建 index/pk 花费的时间太长。我正在使用甲骨文。我怎么知道它是否进展顺利?

我有一张非常大的桌子,大约有 2 亿行。它根本没有索引/ pk。此表中的选择(显然)运行缓慢。我决定使用 3 列创建一个 PK。我是在一个测试环境中完成的,该环境具有该表的较小版本,并且它的工作方式非常有魅力。

所以,在回家之前我做了一个 ALTER TABLE HUGETABLE ADD CONSTRAINT PK_HUGETABLE PRIMARY KEY (ID1, ID2, ID3);

我预计它会在晚上运行,但它已经超过 24 小时而且它仍在运行。

我知道如果我在开始查询之前保留了会话 ID,我将能够在 V$SESSION_LONGOPS 跟踪它。但我没有。

有什么方法可以检查我的查询进展如何或还需要多长时间?

0 投票
3 回答
104924 浏览

sql-server-2005 - SQL Server 2005 中与复合主键的外键关系

我有两张桌子

在表 2 中FileIDFileType是复合主键。我想从 to 创建一个外键Table1.FileID 关系Table2

是否有可能做到这一点?