2012-04-11 163 views
0

我有一个简单的数据库名为客户与单个表data.I想检查是否客户名称退出数据库中,如果然后我想删除它。我使用MYSQL连接器为此。如何检查表中是否存在值,如果存在则删除它?

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

您是否尝试删除存在的客户和不存在的客户并查看会发生什么? – npinti 2012-04-11 07:34:11

+0

这有点令人困惑。你想要一个MySQL的查询,将做到这一点?你是否将数据转换为数据表或类似的数据,并且想要对其执行操作?请扩大。 – Dementic 2012-04-11 07:34:29

+0

你不必检查你想删除的数据的存在,只要将它删除'where = your condition' – 2012-04-11 07:35:41

回答

6

为什么不直接删除它?

DELETE FROM customers WHERE customer_name = 'John Smith'; 

如果存在,它将被删除。否则,不会有行受到影响。

编辑:

如果你需要一个更复杂的过程,那么我建议(按顺序):

  1. 创建ON DELETE FOR EACH ROW触发,一旦缺失将会自动更新标志;
  2. 为此目的开发一个函数/程序;
  3. 执行一组操作的事务块中,如:
START TRANSACTION; 
    UPDATE flag_table SET is_deleted = 1 WHERE customer_name = 'John Smith'; 
    DELETE FROM customers WHERE customer_name = 'John Smith'; 
    COMMIT; 

这将是比较容易回答,如果你能提供你的设计的更多细节。

+0

如果找不到值,不会抛出异常。 – techno 2012-04-11 07:38:35

+0

不,它根本就没有做任何事情 – Iridio 2012-04-11 07:40:00

+0

我也想检查客户名称是否存在。 – techno 2012-04-11 07:43:28

0

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

相关问题