2017-04-19 24 views
0

好日子大家,我有一个关于外键上一个问题一样,是有可能的,当我插入从主表例如数据外键自动插入
是否可以自动生成插入外键


Student_table

 
|Id | Fname |LName|
|12 | John |Doe |

Quizes_table
 
ControlNum(auto_increment)|Quiz1|Quiz2|Quiz|Stud_id(fKey)
1 |0 |0 |0 |0 |12

我简单的解决方案是只是让学生表2插入查询插入和测验table..but使用具有硬牛逼这种方法IM IME,当涉及到大量的数据和一对多的关系表..


所以我的主要问题是我可以让学生表和外键只会一个插入查询生成依赖于你插入像例如

在学生表上插入id,如id = 14 Fname =“myname”,Lname =“mylastname”,quizes表生成stud_id = 14,如果不可能则将其余字段设置为null或零没有别的选择,只能做每一个插入查询,但它在实际真正的大数据(T_T)上有点麻烦

+1

您可以使用触发器来实现,但在数据库中创建不相关的数据通常不是一个好习惯。数据不存在的简单事实应该足以让您的程序初始化新的Quizz。 –

+0

你是什么意思插入..主表中的新记录或主表中的旧记录? –

回答

2

当然,你可以crea TE的一种触发了您的学生表:

CREATE TRIGGER student_ins AFTER INSERT ON student 
    INSERT INTO quizes SET stud_id = NEW.id; 

假设你已经懂事零个值默认为你的测验表的其他列,否则让他们为NULL。

但我不确定这是如何实现的,因为无论如何您需要运行另一个UPDATE查询来稍后填充测验分数。

+0

感谢这一个对我很好,现在不用担心我的实际项目,其中有许多子表连接到我的主表非常感谢你 –

0

如果您插入从主表中的new record到您的外键表

您需要使用trigger After Insert

否则 你需要构建一个normal script插入一条记录到你的外键表

相关问题