Hinzufügen benutzerdefinierter CHECK-Einschränkungen in MySQL
Beim Versuch, benutzerdefinierte CHECK-Einschränkungen zu MySQL-Tabellen hinzuzufügen, können Probleme auftreten. Diese Einschränkungen, die die Werte einschränken, die basierend auf einer bestimmten Bedingung in eine Spalte eingegeben werden können, werden in MySQL nicht nativ unterstützt.
Beachten Sie den bereitgestellten Code, der versucht, eine CHECK-Einschränkung für die Statusspalte zu erzwingen Erlaube nur die Werte „a“, „d“ und „u“:
CREATE TABLE `Participants` ( ... CONSTRAINT `participants_ibfk_2` CHECK (status IN ('a','d','u')) ... );
Beim Ausführen dieses Codes in MySQL werden Sie jedoch feststellen, dass die CHECK-Einschränkung ignoriert wird. Dies liegt daran, dass, wie im MySQL-Handbuch angegeben, in Tabellendefinitionen definierte CHECK-Klauseln von MySQL-Speicher-Engines nicht unterstützt werden.
Daher ist es wichtig zu verstehen, dass MySQL zwar die Definition von CHECK-Einschränkungen ermöglicht, diese Einschränkungen jedoch nicht Erzwingen Sie keine Einschränkungen für die in die Tabelle eingegebenen Daten.
Problemumgehungen
Zur Durchsetzung und Einschränkung der Datenintegrität Um die Spaltenwerte wie vorgesehen zu ändern, können Sie die folgenden Problemumgehungen in Betracht ziehen:
Das obige ist der detaillierte Inhalt vonWarum unterstützt MySQL keine CHECK-Einschränkungen und welche Alternativen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!