关于数据库主键问题

微信图片_20221229094335.png

现在有一张记录客流的表,因为md门店,rq日期,xingqi星期都不是唯一的(同一天多个店有多条记录),我也没有设置主键。按数据库表要求来说,每张表都要设置主键,我没明白这个设不设主键,到底有什么差异。我可以加个自增的INT 加个字段当主键,但没明白加了和不加有什么区别?请大神指点一下

SQL ysbin 发布于 2022-12-29 09:51
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
qwe9711111Lv5见习互助
发布于2022-12-29 10:28

以该张记录客流的表为例,如果设置了门店、日期、星期几为主键的话,就表示数据库里面 一天一个门店就只能存储一条数据;但当设置自增id当主键的话 就可以出现一天一个门店有多条信息

  • ysbin ysbin(提问者) 嗯,这我明白。除了主键约束,其他也没啥影响吧? 更新的时候不唯一,我加两个条件就是了
    2022-12-29 11:56 
最佳回答
0
用户6NWif5139660Lv6资深互助
发布于2022-12-29 09:53

数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。

主键可以用来表示一个精确定位的特定的行,如果没有主键,你就无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或删除表中特定的行很困难。

而如果我们有主键来约束行记录的唯一性后,就可以利用主键来解决这个问题。

主键的作用:

  1)保证实体的完整性;

  2)加快数据库的操作速度。

  3) 在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。

  4) DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

最佳回答
0
LTC朝Lv6高级互助
发布于2022-12-29 09:54

image.png

  • 3关注人数
  • 240浏览人数
  • 最后回答于:2022-12-29 10:28
    请选择关闭问题的原因
    确定 取消
    返回顶部