我在quizId中有两个表,测试是主键,我已经把它设置为auto_increment,.I,有另一个表quizQuestions,在这个表quizQuestions中,我想要quizID of quiz表作为主键。以下是以下问题:
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)
)NOw我想问这是我在quizQuestions中的第一行正确,我应该在quizQuestions表中指定quizId为AUTO_INCREMENT还是因为quizId是quiz表的主键吗?
发布于 2013-07-31 04:39:30
quizId不应该是auto_increment,在这种情况下,它不会编译,因为它不是主键。正如注释所指出的,由于您正在创建一对多的关系,您应该使quizId外键和questionId自动增量主键(就像您所做的那样)。
请注意,如果您将quizId设置为主的和外接的,您也可以自动增加它,但这不是您想要的.
https://stackoverflow.com/questions/17960897
复制相似问题