Heim > Datenbank > MySQL-Tutorial > Wie verwende ich einen MySQL-Trigger, um zukünftige Geburtsdatumseinfügungen zu verhindern?

Wie verwende ich einen MySQL-Trigger, um zukünftige Geburtsdatumseinfügungen zu verhindern?

Barbara Streisand
Freigeben: 2025-01-16 18:41:10
Original
239 Leute haben es durchsucht

How to Use a MySQL Trigger to Prevent Future Birthdate Inserts?

Verwenden Sie einen MySQL-Trigger, um zu verhindern, dass zukünftige Geburtsdaten eingefügt werden

MySQL ermöglicht die Verwendung von Triggern, um Einfügevorgänge basierend auf bestimmten Bedingungen zu verhindern. Ein solcher Fall besteht darin, künftig Einfügungen mit Geburtsdaten zu verhindern.

Dazu können Sie einen BEFORE INSERT-Trigger erstellen, der den Wert der Spalte birthdate prüft:

<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE()
  THEN
    -- 如何阻止插入?
  END IF;
END;</code>
Nach dem Login kopieren

Um einen Einfügevorgang innerhalb einer IF-Anweisung abzubrechen, können Sie die SIGNAL-Anweisung von MySQL verwenden:

<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE()
  THEN
    SIGNAL SQLSTATE '45000'
      SET MESSAGE_TEXT = '由于出生日期为未来日期,因此不允许插入';
  END IF;
END;</code>
Nach dem Login kopieren

Alternativ können Sie die Daten ändern, um die Einschränkung zu verletzen, indem Sie beispielsweise den Wert der Spalte birthdate auf NULL:

festlegen, wenn das Geburtsdatum in der Zukunft liegt
<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE()
  THEN
    SET NEW.birthdate = NULL;
  END IF;
END;</code>
Nach dem Login kopieren

Da die Spalte birthdate als NOT NULL definiert ist, wird der Einfügevorgang automatisch abgelehnt.

Das obige ist der detaillierte Inhalt vonWie verwende ich einen MySQL-Trigger, um zukünftige Geburtsdatumseinfügungen zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage