与前任程序员合作他的代码每天都在努力......现在,显然也是他的数据库。
所以在这里我们有一个表来存储用户的可用性,通常你会为每一行数据分配一个唯一的id。除了......他没有。他将user_id作为第一个主键(可能是复合键)。 因此,用户在每个工作日(星期一至星期五)和该周的每个时段更改其可用性。 这分为一行:
user_id,day,hour_nr,hour_type,location_id
但你可能会看到这一个,我不能手动插入假数据用于开发目的。我试图增加一个学期和大学年(这对教育机构而言)哪个工作正常但是因为旧数据并不需要这个,所以它都设置为0。 / p>
新行将包括:
user_id,day,hour_nr,hour_type,location_id,period_id,collegeyear_id
我已经尝试将数据上传到包含期间和大学年份信息的表中,但是我立即收到错误,告诉我有重复的条目。 这是正确的,但也有重复。
所以问题是:如何在不改变表键的情况下强制执行此操作?我不太愿意改变复合主键的索引属性。
最后,我知道这是错误的,我知道它应该以不同的方式完成。同样,这不是我的工作或设计,在这个项目中我没有时间来修理或改变它。
根据要求,特此提供包含数据的表格快照以及如何
的快照快照显示的标题与提及的标题不同,它们是相同的,但是用荷兰语。
Current data snapshot(我忘了将所需数据结果快照中的最后两列放在快照上,但它们已经只包含0'
我确实需要INSERT
,数据必须添加而不是更改。或者这个问题的另一个解决办法,但必须添加数据。
因此,在隧道视觉的一个完美例子中,我修复并因此回答了我自己的问题。
不应盲目地插入数据,而应该更多地关注复合键部分。我已经在密钥中添加了2个新列,现在一切都很好,花花公子。
我说我不想弄乱键,但是指向已经存在的键没有添加到复合键。
我仍然不喜欢这样一个事实,即没有一个唯一的ID,但它是可行的。
答案 0 :(得分:0)
Q值。 所以问题是:如何在不改变表键的情况下强制执行此操作?我不太愿意改变复合主键的索引属性。
一个。 您不能强制主键具有相同ID的多个值。 您要做的最好的事情是添加一个带有新ID的额外列,并在软件中引用它。
主键是指定用于唯一标识所有表记录的特殊关系数据库表列(或列组合)。
主键的主要功能是:
每行数据必须包含唯一值。 它不能包含空值。 主键是现有表列或根据定义的顺序由数据库专门生成的列。
资源: - techopedia
答案 1 :(得分:0)
因此,在隧道视觉的一个完美例子中,我修复并因此回答了我自己的问题。
不应盲目地插入数据,而应该更多地关注复合键部分。我已经在键中添加了2个新列,现在一切都很好,花花公子。
我说我不想弄乱键,但是指向已经存在的键没有添加到复合键。
我仍然不喜欢没有一个唯一ID,但它是可行的。