数据库表可以没有主键吗?

use*_*363 8 sqlite primary-key

数据库表可以没有主键吗?SQLite 允许您定义一个没有主键的表,因此不会有插入异常。

RDF*_*ozz 14

可以创建没有主键的数据库表吗?好吧,您刚刚说您可以在 SQLite 中使用。而且,我相信几乎每个(如果不是每个)主要 DBMS 平台都是如此。

应该创建一个没有主键的数据库表吗?不。

每个表都应该有一些列(或一组列)来唯一标识一个且只有一行。它使维护数据变得更加容易。

确实如此,如果没有主键(或某个唯一键),如果多次插入相同的数据,就不会出现插入异常。

拥有的是一个user表,其中包含一个名为“bob”的用户的 300 个单独条目,其中许多条目在其他列中具有不同的值。而且,如果您尝试将其他表中的行连接到user没有主键/外键关系的情况下 -message标记为sent_by“bob”的每一行都与这 300user个条目中的每一个相关联。哦,“bob”有 39 个唯一密码(当然,157 行都显示密码“password”)。

没有主键,事情会变得非常混乱,非常快。

  • 我想说的是,如果没有主键,你就没有数据,只有垃圾。 (2认同)
  • 在 MySQL 中,如果您不创建一个,则会为您创建一个“隐藏”的! (2认同)