检查值是否已存在的最合适方法

时间:2015-01-18 02:01:16

标签: c# mysql

让我先解释一下情景。

我有一个客户和电话关系数据库。只要电话号码是唯一的,客户就可以拥有多个电话号码。

例如,

  • 客户Bryan添加'111'号码已插入。
  • 客户Bryan添加'222'号码已插入。
  • 客户Bryan添加了'111'号码不被接受。

通常,我必须执行几个查询来实现此目的

首先检查数据库中是否已存在尝试添加的号码。 query =“SELECT COUNT(NAME)其中name ='Bryan'和数字'111'”;

如果结果为0,则继续执行INSERT。

我不认为这是正确的方法。

我已尝试使用以下查询但它无法正常工作。它的语法无效。

IF NOT EXISTS (
SELECT telephone
FROM phone_numbers
WHERE telephone = '123456' 
AND customer_id = 20)
BEGIN
INSERT INTO phone_numbers (telephone, customer_id) VALUES
("123456", 20)
END;

我在C#中写这篇文章有没有人可以告诉我最合适的方法呢?

1 个答案:

答案 0 :(得分:1)

不是您具体问题的答案,而是建议如何更好地定义您的架构,以免您面临的问题发生。

因此,如果您指定以下唯一约束:

ALTER TABLE `phone_numbers` 
  ADD UNIQUE `unique_index`(`customer_id`, `telephone`);

您的数据库不会让您在第一时间搞砸它。