Questions tagged «primary-key»

关键字是一组属性,这些属性在表中是不可避免地唯一且不可为空。

12
在MySQL中删除主键
我有以下表模式,它将user_customers映射到实时MySQL数据库的权限: mysql> describe user_customer_permission; +------------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | user_customer_id | int(11) | NO | PRI | NULL | | | permission_id | int(11) | NO …

8
如何正确创建复合主键-MYSQL
这是我正在使用的密集设置的过度简化。table_1和table_2两者都具有自动增量的代理主键作为ID。info是包含有关table_1和的信息的表table_2。 table_1 (id, field) table_2 (id, field, field) info ( ???, field) 我试图决定,如果我应该做的主键info的复合ID的距离table_1和table_2。如果我要这样做,哪一个最有意义? (在此示例中,我将ID 11209与ID 437组合在一起) INT(9)11209437 (我可以想象为什么这很糟糕) VARCHAR (10) 11209-437 DECIMAL (10,4)11209.437 或者是其他东西? 将其用作MYSQL MYISAM DB上的主键是否可以?

19
代理与自然/业务密钥的比较[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 再来一次,旧的争论仍然浮现... 我们是否最好将业务密钥作为主键,还是宁愿使用在业务密钥字段上具有唯一约束的代理ID(即SQL Server身份)? 请提供示例或证明来支持您的理论。

14
INT和VARCHAR主键之间在真实性能上有区别吗?
在MySQL中使用INT与VARCHAR作为主键之间是否存在可测量的性能差异?我想将VARCHAR用作参考列表的主键(想想美国的州和国家/地区代码),并且同事不会花INT AUTO_INCREMENT作为所有表的主键。 我的论点,详见这里,是INT和VARCHAR之间的性能差异可以忽略不计,因为每个INT外键引用将需要JOIN的参考意义,一个VARCHAR键则直接呈现的信息。 那么,是否有人对这个特定用例以及与此相关的性能问题有经验?

11
将自动增量主键插入现有表
我正在尝试更改没有主键或auto_increment列的表。我知道如何添加主键列,但我想知道是否有可能自动将数据插入主键列(我已经在数据库中有500行,并希望为其提供ID,但我不想手动执行) 。有什么想法吗?非常感谢。
157 mysql  primary-key 

9
实体框架和SQL Server视图
由于我没有自由谈论的几个原因,我们在Sql Server 2005数据库上定义一个视图,如下所示: CREATE VIEW [dbo].[MeterProvingStatisticsPoint] AS SELECT CAST(0 AS BIGINT) AS 'RowNumber', CAST(0 AS BIGINT) AS 'ProverTicketId', CAST(0 AS INT) AS 'ReportNumber', GETDATE() AS 'CompletedDateTime', CAST(1.1 AS float) AS 'MeterFactor', CAST(1.1 AS float) AS 'Density', CAST(1.1 AS float) AS 'FlowRate', CAST(1.1 AS float) AS 'Average', CAST(1.1 AS float) AS …

3
SQLite中的主键是否需要索引?
当将整数列标记为SQLite表中的主键时,是否也应为其显式创建索引?SQLite似乎没有自动为主键列创建索引,但是给定目的,它还是可以为它建立索引吗?(我将一直在该列上进行搜索)。 字符串主键的情况会有所不同吗?

5
SQL-多对多表主键
阅读此问题的评论后,出现此问题: 数据库设计 创建多对多表时,应该在两个外键列上创建一个复合主键,还是创建一个自动增量替代的“ ID”主键,然后将索引放在两个FK列上(也许独特的约束)?在每种情况下插入新记录/重新索引对性能有何影响? 基本上,这是: PartDevice ---------- PartID (PK/FK) DeviceID (PK/FK) 与这个: PartDevice ---------- ID (PK/auto-increment) PartID (FK) DeviceID (FK) 评论者说: 将两个ID设置为PK意味着表将按照该顺序在磁盘上进行物理排序。因此,如果我们插入(Part1 / Device1),(Part1 / Device2),(Part2 / Device3),则(Part 1 / Device3),数据库将必须将表分开,并在条目2和3之间插入最后一个。对于许多记录,这变得非常成问题,因为每次添加一条记录都要涉及数百,数千或数百万个记录的改组。相比之下,自动递增的PK允许将新记录附加到末尾。 我问的原因是因为我一直倾向于在没有代理自动增量列的情况下执行复合主键,但是我不确定代理键实际上是否性能更高。

3
UUID最大字符长度
我们将UUID用作oracle数据库的主键,并尝试确定VARCHAR的适当最大字符长度。显然,这是36个字符,但我们注意到生成的UUID比此更长-最多60个字符。有人知道UUID合适的最大字符长度吗?
114 primary-key  uuid 


9
为什么要使用多列作为主键(复合主键)
此示例摘自w3schools。 CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) ) 我的理解是,两列(P_Id和LastName)一起代表该表的主键Persons。这样对吗? 为什么有人要使用多列而不是单列作为主键? 给定表中可以将多少列一起用作主键?

11
sql主键和索引
假设我在数据库中有一个ID行(int)设置为主键。如果我经常查询ID,是否还需要为其编制索引?还是作为主键意味着它已经被索引了? 我问的原因是因为在MS SQL Server中,我可以在此ID上创建索引,正如我所说的,这是我的主键。 编辑:另一个问题-额外索引主键会不会有任何危害?

3
更新MySQL主键
我有一个user_interactions包含4列的表格: user_1 user_2 type timestamp 主键是(user_1,user_2,type) ,我想更改为(user_2,user_1,type) 所以我所做的是: drop primary key ... add primary key (user_2,user_1,type)... 瞧... 问题在于数据库在服务器上处于活动状态。 因此,在我可以更新主键之前,许多重复项已经悄悄潜入,并且它们一直在不断蔓延。 该怎么办? 我现在想做的是删除重复项,并保留最新的timestamp(表中的一列)。 然后以某种方式再次更新主键。
103 mysql  primary-key 

8
将外键用作主键可以吗?
我有两个表: 用户(用户名,密码) 个人资料(个人资料ID,性别,出生日期等) 当前,我正在使用这种方法:每个Profile记录都有一个名为“ userId”的字段作为外键,该字段链接到User表。用户注册后,将自动创建其个人资料记录。 我很困惑与我的朋友建议:有“用户id”字段作为外国和主键和删除“简档”字段。哪种方法更好?

12
ADO.NET实体框架:更新向导不会添加表
我在项目中添加了一个新的ADO.Net实体数据模型,并使用了更新向导”将表添加到模型中。所选表中的五个被添加到设计图面上。其他两个表将不会添加。我在向导中选择它们,然后单击“完成”,但它们从未显示在设计图面上。 这是一个错误,还是在某些情况下(通过设计)无法将表添加到模型中? 更新:XML(* .edmx)揭示了问题。 <!--Errors Found During Generation: warning 6013: The table/view 'FooBar.dbo.Roles' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity you will need to review your schema, add the correct keys and uncomment …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.