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>
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>
Alternativ können Sie die Daten ändern, um die Einschränkung zu verletzen, indem Sie beispielsweise den Wert der Spalte birthdate
auf NULL
:
<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>
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!