簡體   English   中英

使用外鍵自動增量

[英]AutoIncrement with Foreign Key

我在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是測驗表的主鍵?

quizId不應該是auto_increment,在這種情況下它不會編譯,因為它不是主鍵。 如評論所述,由於您正在創建一對多關系,因此您應該使用quizId外鍵和questionId自動增加主鍵(就像您所做的那樣)。

請注意,如果你將quizId設為主要和外來的,你可以使它也自動增加,但這不是你想要的....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM