Kann ein MySQL-Trigger eine CHECK-Einschränkung simulieren?

8

Ich möchte die CHECK-Einschränkung in MySQL verwenden, aber es wird nicht unterstützt. (Im Gegensatz zu anderen RDBMS wird es die CHECKs verstehen, aber nicht erzwingen.)

Ich habe einige Problemumgehungen mit Triggern gesehen. Aber sie neigen dazu, einen Standardwert für das betreffende Feld festzulegen, anstatt einen Fehler zurückzugeben.

Ist es möglich, einen Trigger zu konstruieren, der einen Fehler zurückgibt, wenn eine Bedingung nicht erfüllt ist?

Letztendlich möchte ich einen Trigger, der eine CHECK-Einschränkung kopiert.

    
smnsvane 16.03.2012, 09:43
quelle

3 Antworten

2

Versuchen Sie die folgende Syntax

%Vor%     
Naveen Kumar 16.03.2012, 12:30
quelle
12

wenn Sie Daten aktualisieren:

%Vor%

wenn Sie Daten einfügen:

%Vor%

Diese Trigger funktionieren als Check-Constraint, arbeiten vor dem Einfügen oder Aktualisieren und prüfen den Monat, wenn Monat & gt; 12 einen Fehler ergibt.

    
abhishek ringsia 12.08.2014 14:06
quelle
7

Ab MySQL 5.5 können Sie die Syntax SIGNAL verwenden, um Fehler von zurückzugeben gespeicherte Prozeduren wie Trigger.

    
Naltharial 16.03.2012 09:56
quelle

Tags und Links