让我先解释一下情景。
我有一个客户和电话关系数据库。只要电话号码是唯一的,客户就可以拥有多个电话号码。
例如,
通常,我必须执行几个查询来实现此目的
首先检查数据库中是否已存在尝试添加的号码。 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#中写这篇文章有没有人可以告诉我最合适的方法呢?
答案 0 :(得分:1)
不是您具体问题的答案,而是建议如何更好地定义您的架构,以免您面临的问题发生。
因此,如果您指定以下唯一约束:
ALTER TABLE `phone_numbers`
ADD UNIQUE `unique_index`(`customer_id`, `telephone`);
您的数据库不会让您在第一时间搞砸它。