如何检查表中是否存在值,如果存在则删除它?

时间:2012-04-11 07:31:34

标签: c# mysql sql database mysql-connector

我有一个名为customer的简单数据库,只有一个表数据。我想检查客户名是否在数据库中退出,如果我想删除它。我正在使用MYSQL连接器。

EDIT:
I want to make sure the value is present before deleting to display
a simple user message.

2 个答案:

答案 0 :(得分:6)

为什么不删除它?

DELETE FROM customers WHERE customer_name = 'John Smith';

如果存在,将被删除。否则不会影响任何行。

修改

如果您需要更复杂的流程,我建议(按顺序):

  1. 创建ON DELETE FOR EACH ROW触发器,删除后会自动更新标志;
  2. 为此目的开发功能/程序;
  3. 在事务块中执行一组操作,例如:
  4.     START TRANSACTION;
        UPDATE flag_table SET is_deleted = 1 WHERE customer_name = 'John Smith';
        DELETE FROM customers WHERE customer_name = 'John Smith';
        COMMIT;
    

    如果您能提供有关设计的更多详细信息,那么回答会更容易。

答案 1 :(得分:0)

你可以为此目的使用触发器,如果​​在插入时发现任何重复,mysql将删除。