


Probleme bei der Erstellung von Fremdschlüsseln in SQL Server lösen
In SQL Server unterscheiden sich Fremdschlüsseldeklarationen von denen in PostgreSQL. Sehen wir uns ein Szenario an, in dem eine Abfrage zu folgendem Fehler führte: „Anzahl der referenzierenden Spalten im Fremdschlüssel unterscheidet sich von der Anzahl der referenzierten Spalten in der Tabelle ‚question_bank‘.“
Fehlerursache:
Der bereitgestellte SQL-Code hat versucht, die folgenden Tabellen zu erstellen:
CREATE TABLE question_bank ( question_id UNIQUEIDENTIFIER PRIMARY KEY, question_exam_id UNIQUEIDENTIFIER NOT NULL, question_text VARCHAR(1024) NOT NULL, question_point_value DECIMAL, CONSTRAINT question_exam_id FOREIGN KEY REFERENCES exams(exam_id) );
Der Fehler ist aufgrund der Fremdschlüsseleinschränkung aufgetreten „question_exam_id“ in der Tabelle „question_bank“ verweist auf die Spalte „exam_id“ in der Tabelle „exams“. In der Tabelle „question_bank“ ist jedoch nur eine Referenzierungsspalte („question_exam_id“) vorhanden, während die Tabelle „exams“ mehrere Spalten enthält.
Lösung:
Um dieses Problem zu beheben, müssen wir sicherstellen, dass die Anzahl der referenzierenden Spalten mit der Anzahl der referenzierten Spalten übereinstimmt. In diesem Fall müssen wir nur die Spalte „exam_name“ aus der Tabelle „exams“ zur Tabelle „question_bank“ hinzufügen:
ALTER TABLE question_bank ADD COLUMN exam_name VARCHAR(50);
Jetzt kann die Fremdschlüsseleinschränkung erfolgreich erstellt werden:
ALTER TABLE question_bank ADD CONSTRAINT question_exam_id FOREIGN KEY (question_exam_id, exam_name) REFERENCES exams(exam_id, exam_name);
Alternative Syntax:
Alternativ können Sie die Einschränkung während erstellen der Tabellenerstellungsprozess:
CREATE TABLE question_bank ( question_id UNIQUEIDENTIFIER PRIMARY KEY, question_exam_id UNIQUEIDENTIFIER NOT NULL, exam_name VARCHAR(50), question_text VARCHAR(1024) NOT NULL, question_point_value DECIMAL, CONSTRAINT question_exam_id FOREIGN KEY (question_exam_id, exam_name) REFERENCES exams(exam_id, exam_name) );
In diesem Fall wird die Spalte „exam_name“ zur Tabelle „question_bank“ hinzugefügt und die Fremdschlüsseleinschränkung wird gleichzeitig während der Tabellenerstellung erstellt.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine SQL Server-Fremdschlüsseleinschränkung mit dem Fehler „Anzahl der referenzierenden Spalten' 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
