2012-04-11 10 views
0

Ich habe eine einfache Datenbank namens Kunde mit einer einzigen Tabelle Daten. Ich möchte überprüfen, ob ein Kundenname in der Datenbank, wenn dann ich es löschen möchte. Ich benutze MYSQL Connector für diese.Wie überprüft man, ob ein Wert in einer Tabelle existiert, wenn es existiert, dann lösche es?

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

Haben Sie versucht, einen Kunden zu löschen, der existiert und einen, der nicht existiert und sehen, was passiert ?? – npinti

+0

Das ist ein wenig verwirrend. Willst du eine MySQL-Abfrage, die das macht? Ziehen Sie die Daten in eine Datentabelle oder etwas Ähnliches und möchten die Aktion darauf ausführen? bitte erweitern. – Dementic

+0

Sie müssen nicht nach dem Vorhandensein der Daten suchen, die Sie löschen möchten, löschen Sie einfach 'where = Ihre Bedingung' –

Antwort

6

Warum nicht einfach löschen?

DELETE FROM customers WHERE customer_name = 'John Smith'; 

Wenn es existiert, wird es gelöscht. Ansonsten sind keine Zeilen betroffen.

EDIT:

Wenn Sie einen komplizierten Prozess brauchen, dann empfehle ich (in dieser Reihenfolge):

  1. Schaffung ON DELETE FOR EACH ROW Trigger, das wird Auto-Update-Flags beim Löschen;
  2. Entwicklung einer Funktion/Prozedur für diesen Zweck;
  3. eine Reihe von Aktionen innerhalb eines Transaktionsblocks durchgeführt wird, wie:
START TRANSACTION; 
    UPDATE flag_table SET is_deleted = 1 WHERE customer_name = 'John Smith'; 
    DELETE FROM customers WHERE customer_name = 'John Smith'; 
    COMMIT; 

Es wäre einfacher zu beantworten, wenn Sie weitere Details zu Ihrem Design bieten könnte.

+0

Wont dies eine Ausnahme auslösen, wenn Wert nicht gefunden wird. – techno

+0

Nein. Es tut einfach nichts – Iridio

+0

Ich möchte auch überprüfen, ob der Kundenname existiert. – techno

0

Sie können einen Trigger für diesen Zweck verwenden, wird mysql löschen, wenn beim Einfügen eine Wiederholung gefunden wird.