MySQL CHECK-Einschränkungsfehlerproblem
Beim Definieren von Datenbanktabellen ist es wichtig, Einschränkungen hinzuzufügen, um die Datenintegrität sicherzustellen. Mit CHECK-Einschränkungen können Sie Bedingungen angeben, die die Werte einer bestimmten Spalte erfüllen müssen. In MySQL 8.0.15 und früher werden CHECK-Einschränkungen jedoch nicht erzwungen, was einen Sonderfall darstellt.
Beispiel:
CREATE TABLE Customer ( SD integer CHECK (SD > 0), Last_Name varchar (30), First_Name varchar(30) );
Versuchen Sie nach dem Erstellen dieser Tabelle, Zeilen mit negativen SD-Werten einzufügen:
INSERT INTO Customer values ('-2', 'abc', 'zz');
MySQL meldet keinen Fehler, selbst wenn der eingefügte Wert gegen die angegebene CHECK-Einschränkung verstößt. Dies liegt daran, dass laut MySQL-Referenzhandbuch:
<code>CHECK子句会被解析,但所有存储引擎都会忽略它。</code>
Lösung:
Um dieses Problem zu beheben, können Sie einen der folgenden Schritte ausführen:
- Upgrade auf MySQL 8.0.16 oder höher: Diese Version beginnt mit der Unterstützung von CHECK-Einschränkungen. Weitere Einzelheiten finden Sie in der MySQL-Dokumentation.
- Trigger implementieren: Trigger können verwendet werden, um Einschränkungen zu erzwingen, die die Speicher-Engine ignoriert. Durch das Erstellen eines Triggers, der den SD-Wert vor dem Einfügen überprüft, wie unten gezeigt, kann die Einschränkung effektiv durchgesetzt werden:
mysql> delimiter // mysql> CREATE TRIGGER trig_sd_check BEFORE INSERT ON Customer -> FOR EACH ROW -> BEGIN -> IF NEW.SD <=0 THEN SET NEW.SD=0; -> END IF; -> END -> // mysql> delimiter ;
Bitte beachten Sie, dass das obige Triggerbeispiel den SD-Wert negativer Zahlen auf 0 setzt. Sie können die Triggerlogik entsprechend Ihren tatsächlichen Anforderungen ändern.
Das obige ist der detaillierte Inhalt vonWarum schlagen MySQL CHECK-Einschränkungen in Versionen vor 8.0.16 fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

TodropaviewInmysql, verwenden Sie "dropviewifexistsView_name;" und tomodifyAview, verwenden Sie "creetorReplaceViewView_nameasSelect ...". WhendroppingAView, AXIZENDENDEPENTENDENSANDUSUSE "SHOWREATEVIEWVIEW_NAME;" "

MySQLViewScaneffectivItilizedEntatternSliKeadapter, Dekorateur, Factory undobserver.1) adapterPatternAdaptsdatafromDifferentTableStoaunifiedView.2) DekoratorpatternHancesDataWithokulediel.3) FactoryPatherncreat.ProduculedFeld.3) FactoryPathertoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoration

ViewSinMysqLarbenicialforSimplifyTyComplexQueries, Verbesserung der Sicherheit, Sicherstellung von Dataconsistenz und optimizierterformance.1) SimplifyComplexQueriesbyCapscapsThemintorusableViewViews.2) ViewSenhiteCurityByControllingDataAccess.3) TheenedatacocurityBycaprollingDataAccess.3) TheenedatacocurityBycaprollingDataAccess.3) TheenedatacocurityBycaperingDataAccess.3) TheenedatacocurityBycaperingDataAccess.3) TheenedatacocurityByCaperingDataAccess.3) TheenedatacocourityByCaprollingDataAccess.3) Theensedataco

ToCreateAsimpleviewInmysql, UsethecreateviewStatement.1) definessetheviewWithCreateView_nameas.2)

Tocreateusersinmysql, useTheCecreateuserStatement.1) ForAlocalUser: CreateUser'LocalUser '@' localhost'ididentifiedBy'SecurePassword ';

MySQLViewShavelimitations: 1) Sie sind supportallsqloperationen, restriktedatamanipulation ThroughviewswithjoinSuBqueries.2) Sie können sich angesehen, insbesondere mit der kompetenten Formata -Ansichten, die docrexQuqueriesorlargedatasets angezeigt werden

OrteSermanagementinmysqlisicialforenHancingSecurityAnsuringEffizienceDatabaseoperation.1) Usecreateutertoaddusers, spezifizierende Connections mit 'localhost'or@'%'.

Mysqldoes nicht imposeahardlimitontriggers, aber praktische Faktorendeterminetheireffectiveuse: 1) serverconfigurationImpactstriggermanagement;


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen
