使用mysql的外键

时间:2015-10-29 22:03:19

标签: mysql foreign-keys one-to-many

我使用MySQL有一个原谅的关键问题。我有一张研究表和一张样品表。用户可以添加研究并添加样本。每个样本都属于一项研究,但研究可以有很多样本。因此,研究和样本之间存在一对多的关系。我需要在samples表中设置一个外键,这样无论何时创建一个新样本,它都可以通过其父研究引用。我使用下面的脚本在示例表中设置了一个外键,但每当我添加一个新样本时,它都会将study_id列留空。我是新手使用外键所以任何例子都会很棒。感谢。

CREATE TABLE `studies` (
    `study_id` int(11) NOT NULL AUTO_INCREMENT,
    `user_id` int(11) DEFAULT NULL,
    `study_name` varchar(45) DEFAULT NULL,
    `description` tinytext,
    `reads` varchar(45) DEFAULT NULL, 
    `created_at` varchar(45) DEFAULT NULL,
     PRIMARY KEY (`study_id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;


CREATE TABLE `samples` (
    `sample_id` int(11) NOT NULL AUTO_INCREMENT,
    `study_id` int(11) DEFAULT NULL,
    `sample_name` varchar(45) DEFAULT NULL,
    `created_at` varchar(45) DEFAULT NULL,
    PRIMARY KEY (`sample_id`),
    FOREIGN KEY (`study_id`)
    REFERENCES `studies` (`study_id`)
    ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

0 个答案:

没有答案