Heim > Datenbank > MySQL-Tutorial > Wie simuliere ich CHECK CONSTRAINT mit VIEWS?

Wie simuliere ich CHECK CONSTRAINT mit VIEWS?

WBOY
Freigeben: 2023-08-27 14:37:09
nach vorne
1151 Leute haben es durchsucht

如何使用 VIEWS 来模拟 CHECK CONSTRAINT?

Wie wir alle wissen, unterstützt MySQL Fremdschlüssel für die referenzielle Integrität, unterstützt jedoch keine CHECK-Einschränkungen. Aber wir können sie simulieren, indem wir Trigger verwenden. Dieses Problem kann mithilfe des folgenden Beispiels behoben werden:

Beispiel

Angenommen, wir haben eine Tabelle mit dem Namen „car1“. Die Syntax der Registrierungsnummer besteht aus zwei Buchstaben, einem Bindestrich, drei Ziffern, einem Bindestrich, zwei Buchstaben wie folgt -

mysql> Create table car1 (number char(9));
Query OK, 0 rows affected (0.32 sec)

mysql> Insert into car1 values('AB-235-YZ');
Query OK, 1 row affected (0.10 sec)
Nach dem Login kopieren

Der obige Wert ist gültig, aber was ist mit dem Wert, den wir in die nächste Abfrage einfügen möchten?

mysql> insert into car1 values('AB-2X5-YZ');
Query OK, 1 row affected (0.04 sec)
Nach dem Login kopieren

Der obige Wert ist kein gültiger Wert, da er ein Zeichen zwischen Zahlen enthält, was gegen die von uns verwendete feste Syntax verstößt.

Ansicht erstellen, um CHECK CONSTRAINT zu simulieren, um Werte einzufügen und zu aktualisieren -

mysql> Create view car_invalid_check as
    -> Select * from car1 WHERE number rlike '^[[:alpha:]]{2}-[[:digit:]]{3}-[[:alpha:]]{2}$'
    -> with check option;
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into car_invalid_check values('AB-2X5-YZ');
ERROR 1369 (HY000): CHECK OPTION failed 'query.car_invalid_check'

mysql> Insert into car_invalid_check values('AB-235-YZ');
Query OK, 1 row affected (0.09 sec)

mysql> Update car_invalid_check SET NUMBER = 'AB-2X5-ZT';
ERROR 1369 (HY000): CHECK OPTION failed 'query.car_invalid_check'
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie simuliere ich CHECK CONSTRAINT mit VIEWS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage