首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制在mysql中插入重复键

问如何强制在mysql中插入重复键
EN

Stack Overflow用户
提问于 2017-08-17 14:42:10
回答 2查看 991关注 0票数 0

与前一位程序员--他的代码--一起工作是一件很费劲的事.现在,显然,也是他的数据库。

问题描述

因此,这里我们有一个表来存储用户的可用性,通常您会为每一行数据分配一个唯一的id。除了..。他没有,他让user_id成为第一个主键(可能是一个复合键)。因此,用户更改了每个工作日(星期一至星期五)和该周的每个时隙的可用性。这将被分成一行:

代码语言:javascript
复制
user_id,day,hour_nr,hour_type,location_id

但你可能会看到这一次,我不能手动插入假数据用于开发目的。我试图添加一个期间和大学年(这是为一个教育机构),这是很好的,但由于旧的数据不需要这一点,所以所有的设置为0。

新一行将包括:

代码语言:javascript
复制
user_id,day,hour_nr,hour_type,location_id,period_id,collegeyear_id

我尝试将数据上传到包含期间和大学年信息的表中,但是我立即收到一个错误,告诉我有一个重复的条目。这是正确的,但已经有重复的。

问题

所以问题是:我如何在不改变表键的情况下强制这样做?我不太想改变复合主键的索引属性。

最后,我知道这是错误的,我知道应该采取不同的做法。再说一次,这不是我的工作或设计,我没有任何时间来修复或改变它在这个项目。

编辑

根据请求,在此给出包含数据的表的快照和应如何使用的快照。

快照显示的标题与前面提到的不同,但在荷兰语中是相同的。

当前数据快照 (我忘了将最后2列放在快照上,但它们只包含0)。

期望数据结果

我确实需要一个INSERT,数据必须被添加,而不是改变。当然也不能解决这个问题,但是必须添加数据。

修复

因此,在隧道视觉的一个完美例子中,我修正了,因此回答了我自己的问题。

我不应该盲目地考虑插入数据,而应该更多地关注复合关键部分。我在键中增加了两个新列,现在一切都很好。

我说我不想弄乱这些键,但那是指向已经存在的键,而不是添加到复合键中。

我仍然不喜欢这样一个事实,即没有一个唯一的id,但它是可行的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-17 15:28:25

因此,在隧道视觉的一个完美例子中,我修正了,因此回答了我自己的问题。

我不应该盲目地考虑插入数据,而应该更多地关注复合关键部分。我在键中增加了两个新列,现在一切都很好。

我说我不想弄乱这些键,但那是指向已经存在的键,而不是添加到复合键中。

我仍然不喜欢这样一个事实,即没有一个唯一的id,但它是可行的。

票数 0
EN

Stack Overflow用户

发布于 2017-08-17 15:21:25

所以问题是:我如何在不改变表键的情况下强制这样做?我不太想改变复合主键的索引属性。

答:您不能强迫主键具有相同ID的多个值。最好的做法是在软件中添加一个带有新ID和引用的额外列。

主键是指定用于唯一标识所有表记录的特殊关系数据库表列(或列的组合)。

主键的主要特点是:

它必须包含每一行数据的唯一值。它不能包含空值。主键要么是现有的表列,要么是由数据库根据定义的序列具体生成的列。

资源:- 技术漏斗

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45738211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档