2012-04-11 161 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將刪除。

相關問題