当前位置: 首页 > 面试题库 >

唯一-在表中具有唯一行的方式?

阎自怡
2023-03-14
问题内容

我对数据库表中的唯一行有问题,现在可以这样做:

id  | Name  | LastName  | City
-------------------------------------
1   | John  | Moore     | London
2   | John  | Moore     | London

当我在所有列中使用UNIQUE属性时,即使第二个Moore名称不同,我也会插入第二个Moore错误:/

如何使用UNIQUE(或INDEX?)在db表中执行类似的操作:

id  | Name  | LastName  | City
-------------------------------------
1   | John  | Moore     | London
2   | Jake  | Moore     | London
3   | John  | Keen      | London
4   | John  | Moore     | London //but good error when inserting the same row

抱歉,如果问题很简单,但是我是sql的初学者,并且在使用UNIQUE之类的UNIQUE时找到一些好的示例时遇到问题:/或者也许我必须在插入新行之前从db中选择一个表并检查其是否存在?


问题答案:

删除单个列上的唯一索引,然后将其同时放在两个列上,如下所示:

CREATE UNIQUE INDEX ixFullName ON yourTable (LastName, Name);


 类似资料:
  • 问题内容: 我想向现有表添加复杂的唯一键。主要从4个字段包含(,,,)。但是表具有非唯一行。我知道我可以删除所有重复的日期,然后再添加复杂的密钥。 也许存在另一种无需搜索所有重复数据的解决方案。(例如添加唯一的忽略等)。 我搜索了UPD,如何删除重复的mysql行-我认为这是一个很好的解决方案。 仅使用MySQL查询删除重复项? 问题答案: 您可以按照yAnTar的建议进行 要么 您可以添加约束

  • 问题内容: 这个问题需要一些假设的背景。让我们考虑一个有列的表,,,,使用MySQL作为RDBMS。由于如果给定的某个人的名字和出生日期与另一个人相同,那么根据定义,他们就是同一个人(除非有两个巧合,即我们两个人分别于1809年2月12日出生,他们叫亚伯拉罕·林肯),所以我们将上的唯一键,这意味着“不要将同一个人存储两次”。现在考虑以下数据: 如果现在尝试运行以下语句,则该语句应该并且将失败: 如

  • 有人愿意帮我完成一个jdbctemplate查询吗? 只需要获取具有唯一id的行,但存在重复的行,因为其他列(如date)具有不同的值。我需要最好得到最长日期,结果集不应该有任何重复项:x个 输出: 这几乎有效,但不完全有效。可悲的是,有重复的。 这是我正在使用的两张桌子。 PS.:使用PostgreSQL

  • 我想洗牌的数据帧保持一组行在一起。在一起的行数不是常数,但我有一列用相同的id标记它们。 例如:在下面的数据中,第一列是唯一的标记,用于指定在无序移动时需要将哪些行放在一起。

  • 问题内容: 会根据其位置而不是其值来生成其元素被视为唯一的元素。所以基本上我想避免重复这样的事情: 之后的过滤是不可能的,因为在我的情况下,排列的数量太大。 有人知道合适的算法吗? 非常感谢你! 编辑: 我基本上想要的是以下内容: 这是不可能的,因为sorted创建列表并且itertools.product的输出太大。 抱歉,我应该已经描述了实际问题。 问题答案: 结果: 编辑(这是如何工作的):

  • 问题内容: 在我的职业生涯中,我曾遇到过几次这样的问题,而我当地的同行似乎都无法回答。假设我有一个表,表中有一个“描述”字段,这是一个候选键,只是有时用户会在过程中途停下来。因此,对于25%的记录,此值是null,但对于所有非NULL的值,它必须是唯一的。 另一个示例可能是一个表,该表必须维护一条记录的多个“版本”,并且一个位值指示哪个是“活动”的。因此,总是填充“候选键”,但是可能存在三个相同的