[英]How to update or insert a child table which having foreign key constrains from parent table
我有以下兩個父表(UserLogins、UserSecurityQuestions)和一個子表 - UserSecurityAnswers
#Parent Table
CREATE TABLE UserLogins
(
UserLoginID SMALLINT NOT NULL IDENTITY(1,1),
UserLogin VARCHAR(50) NOT NULL,
UserPassword VARCHAR(20) NOT NULL,
CONSTRAINT pk_UL_UserLoginID PRIMARY KEY(UserLoginID)
);
CREATE TABLE UserSecurityQuestions
(
UserSecurityQuestionID TINYINT NOT NULL IDENTITY(1,1),
UserSecurityQuestion VARCHAR(50) NOT NULL,
CONSTRAINT pk_USQ_UserSecurityQuestionID PRIMARY KEY(UserSecurityQuestionID)
);
#子表
CREATE TABLE UserSecurityAnswers
(
UserLoginID SMALLINT NOT NULL IDENTITY(1,1),
UserSecurityAnswers VARCHAR(25) NOT NULL,
UserSecurityQuestionID TINYINT NOT NULL,
CONSTRAINT pk_USA_UserLoginID PRIMARY KEY(UserLoginID),
CONSTRAINT fk_UL_UserLoginID FOREIGN KEY(UserLoginID) REFERENCES UserLogins(UserLoginID),
CONSTRAINT fk_USQ_UserSecurityQuestionID FOREIGN KEY(UserSecurityQuestionID) REFERENCES UserSecurityQuestions(UserSecurityQuestionID)
);
#INsert 值到父表
#UserLogins
insert into UserLogins values('User1', 'Pass1');
insert into UserLogins values('User2', 'Pass2');
insert into UserLogins values('User3', 'Pass3');
insert into UserLogins values('User4', 'Pass4');
insert into UserLogins values('User5', 'Pass5');
#UserSecurityQuestions
insert into UserSecurityQuestions values('What is your favourite food?');
insert into UserSecurityQuestions values('What is your favourite food?');
insert into UserSecurityQuestions values('What is your favourite food?');
insert into UserSecurityQuestions values('What is your favourite food?');
insert into UserSecurityQuestions values('What is your favourite food?');
現在我正在用以下值更新表 UserSecurityAnswers
insert into UserSecurityAnswers values('Apples');
insert into UserSecurityAnswers values('Spiderman');
insert into UserSecurityAnswers values('School1');
insert into UserSecurityAnswers values('Ram');
insert into UserSecurityAnswers values('Toyota');
但我得到低於錯誤
Column name or number of supplied values does not match table definition.
在這種情況下,我希望子表會從父表繼承值。 但不確定這個實現有什么問題
有什么幫助嗎?
如果主鍵作為增量給出,則在插入過程中只會自動獲取主鍵。 您必須提供的所有其他列,如果您只是給出“應用”,則數據庫不知道 map 它針對父 FK id。
在將查詢插入到 Answers 表中,包括來自其他兩個表的 PK 值。
順便說一句-您沒有更新 securityanswer 表,您正在嘗試插入新的。 所以 FK 列是強制性的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.