我在quizId
中有两个表测验是主键。我已将其设置为auto_increment。我有另一个表quizQuestions,其中我想要quiz表的quizID作为foriegn键。
这些是查询:
CREATE TABLE IF NOT EXISTS quiz (
quizId int(11) NOT NULL AUTO_INCREMENT,
subject varchar(30) DEFAULT NULL,
examDate date DEFAULT NULL,
PRIMARY KEY (quizId)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS quizQuestions
(
quizId int(11) NOT NULL AUTO_INCREMENT,
questionId int(11) NOT NULL AUTO_INCREMENT,
question varchar(30) DEFAULT NULL,
option1 varchar(30) DEFAULT NULL,
option2 varchar(30) DEFAULT NULL,
option3 varchar(30) DEFAULT NULL,
option4 varchar(30) DEFAULT NULL,
answer varchar(30) DEFAULT NULL,
PRIMARY KEY (questionId),
Foreign Key (quizId) references quiz(quizId)
)
我想在quizQuestions中询问这是我的第一行是否正确,我是否应该在quizQuestions表中将quizId指定为AUTO_INCREMENT,因为quizId是测验表的主键?
答案 0 :(得分:2)
quizId不应该是auto_increment,在这种情况下它不会编译,因为它不是主键。如评论所述,由于您正在创建一对多关系,因此您应该使用quizId外键和questionId自动增加主键(就像您一样)。
请注意,如果您对主要和外国进行quizId,您也可以将其设为自动增量,但这不是您想要的....