Si j'utilise la commande SQL suivante dans SQL Server 2008 pour mettre à jour une table avec une contrainte de clé étrangère:
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)
UserID
étant ma colonne FK dans la table Employees
. J'essaie de faire référence àUserID
dans ma table ActiveDirectories
. Je reçois cette erreur:
La clé étrangère 'UserID' fait référence à la colonne non valide 'UserID' dans le référencement tableau 'Employés'.
Erreur indique qu'il n'y a pas de colonne ID utilisateur dans votre table Employees. Essayez d’ajouter d’abord la colonne, puis réexécutez l’instruction.
ALTER TABLE Employees
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id);
Peut-être que vous avez vos colonnes à l'envers ??
ALTER TABLE Employees
ADD FOREIGN KEY (UserID) <-- this needs to be a column of the Employees table
REFERENCES ActiveDirectories(id) <-- this needs to be a column of the ActiveDirectories table
Se pourrait-il que la colonne s'appelle ID
dans la table Employees
et UserID
dans la table ActiveDirectories
?
Alors votre commande devrait être:
ALTER TABLE Employees
ADD FOREIGN KEY (ID) <-- column in table "Employees"
REFERENCES ActiveDirectories(UserID) <-- column in table "ActiveDirectories"
MySQL/SQL Server/Oracle/MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Pour autoriser le nommage d'une contrainte FOREIGN KEY et pour définir une contrainte FOREIGN KEY sur plusieurs colonnes, utilisez la syntaxe SQL suivante:
MySQL/SQL Server/Oracle/MS Access:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
A l'avenir.
ALTER TABLE Employees
ADD UserID int;
ALTER TABLE Employees
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id);
manière de créer une clé étrangère correcte pour ActiveDirectories (id), je pense que la principale erreur est que vous n'avez pas mentionné la clé primaire pour id dans la table ActiveDirectories
ALTER TABLE Faculty
WITH CHECK ADD CONSTRAINT FKFacultyBook
FOREIGN KEY FacId
REFERENCES Book Book_Id
ALTER TABLE Faculty
WITH CHECK ADD CONSTRAINT FKFacultyStudent
FOREIGN KEY FacId
REFERENCES Student StuId