问题标签 [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.
sql-server-2005 - SQL Server 2005:在两个主键之一上设置自动增量时出错
我收到错误消息“当 IDENTITY_INSERT 设置为 OFF 时,无法在表‘表’中插入标识列的显式值。”
该表有两个主键,一个设置为自动递增,一个设置为 i 传入的值。
这在 SQL Server 2005 中可行吗?还是我错过了什么?
提前非常感谢。
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情况,但当孩子是复合键时似乎不起作用)
谢谢!
database - 为什么主键必须是最小的?
主键是唯一标识表中行的一个属性或一组属性。但是主键不仅必须是唯一的,而且必须是最小的。为什么这是必要的?
sql - 为什么我读到这么多关于使用复合键的负面意见?
我正在研究一个喜欢自动编号标识符的 Access 数据库。每个表都使用它们,除了一个,它使用由一个人的名字、姓氏和生日组成的键。无论如何,人们开始遇到很多重复的问题,因为表示关系的表可以保存相同的关系两次或更多。我决定通过为关系表实现复合键来解决这个问题,从那以后我就没有遇到过重复问题。
所以我想知道 Access 世界中复合键的不良代表是怎么回事?我想编写查询稍微困难一些,但至少您不必每次在前端输入甚至编辑数据时都进行大量检查。他们是令人难以置信的超级低效还是什么?
sql-server - SQL Server 2005 错误检索基于日期时间主键列的记录
我在 SQL Server 2005 中有一个带有复合主键的表,即外键 (INT) 和 DateTime 列。
当我运行 SQL 时,
有记录时没有返回记录。
一种选择是
但是,看起来……我真的必须求助于这个吗?还是因为我必须指定直到毫秒?或者有什么解决办法吗?
请帮忙。提前致谢。
java - Hibernate:insertable = false,updatable = false 属于涉及外键的复合主键星座中的哪里?
在 Hibernate 或其他 ORM 中实现复合主键时,在使用标识关系的复合主键星座(作为 PK 的一部分的 FK)中,最多可以在三个位置放置 insertable = false、updatable = false:
- 进入复合 PK 类的 @Column 注释(仅限 @Embeddable 类)或
- 进入实体类的关联@JoinColumn/s 注解或
- 进入实体类的冗余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 方式、最佳实践或将“可插入 = 假,可更新 = 假”放在哪里的偏好是什么?
python - Django - 多列主键
我想在 django 中实现多列主键。
我试图实现一个 AutoSlugField() 连接我的列值(外键/日期)......
模型.py:
当我传递以下参数时:
我试图向primary_key=True
slug 添加参数...但它使用“-1”“-2”创建新实例...并且根本没有更新...
我错过了什么 ?
谢谢,
永安
sql - 如何使用 Oracle 索引
我是一名几乎没有 Oracle 经验的 PHP 开发人员,负责使用 Oracle 数据库。
我注意到的第一件事是,这些表似乎没有我习惯在 MySQL 中看到的自动编号索引。相反,他们似乎从两个字段中创建了一个索引。
例如,我注意到其中一个索引是日期字段和外键 ID 字段的组合。日期字段似乎存储了整个日期和时间戳,因此组合相当独特。
如果索引名称是 PLAYER_TABLE_IDX 我将如何在我的 PHP 代码中使用这个索引?
我想通过这个索引引用一个唯一的记录(而不是在我的 SQL 查询的 WHERE 部分中使用两个 AND 子句)
任何建议 Oracle/PHP 专家?
oracle - 在一个巨大的表中创建 index/pk 花费的时间太长。我正在使用甲骨文。我怎么知道它是否进展顺利?
我有一张非常大的桌子,大约有 2 亿行。它根本没有索引/ pk。此表中的选择(显然)运行缓慢。我决定使用 3 列创建一个 PK。我是在一个测试环境中完成的,该环境具有该表的较小版本,并且它的工作方式非常有魅力。
所以,在回家之前我做了一个 ALTER TABLE HUGETABLE ADD CONSTRAINT PK_HUGETABLE PRIMARY KEY (ID1, ID2, ID3);
我预计它会在晚上运行,但它已经超过 24 小时而且它仍在运行。
我知道如果我在开始查询之前保留了会话 ID,我将能够在 V$SESSION_LONGOPS 跟踪它。但我没有。
有什么方法可以检查我的查询进展如何或还需要多长时间?
sql-server-2005 - SQL Server 2005 中与复合主键的外键关系
我有两张桌子
和
在表 2 中FileID
和FileType
是复合主键。我想从 to 创建一个外键Table1.FileID
关系Table2
。
是否有可能做到这一点?