Sql 每当在表B中插入一行时,在表a中插入一行

Sql 每当在表B中插入一行时,在表a中插入一行,sql,procedure,Sql,Procedure,我有一个名为“student”的表,其中student\u id是主键。 我想创建一个名为“new\u stud”的新表。 当新的学生记录插入到“学生”表中时,新创建的学生id将自动插入到“新学生”表中 我希望通过“合并”两个表来解决这个问题,但不使用游标 当新的学生记录插入到“学生”表中时,新创建的学生id将自动插入到“新学生”表中 您需要一个触发器 您没有指定正在使用的数据库。以下两个链接适用于SQL Server,但在大多数关系数据库中的概念是相同的: (堆栈溢出) (MSDN) 基本

我有一个名为“student”的表,其中student\u id是主键。 我想创建一个名为“new\u stud”的新表。 当新的学生记录插入到“学生”表中时,新创建的学生id将自动插入到“新学生”表中

我希望通过“合并”两个表来解决这个问题,但不使用游标

当新的学生记录插入到“学生”表中时,新创建的学生id将自动插入到“新学生”表中

您需要一个触发器

您没有指定正在使用的数据库。以下两个链接适用于SQL Server,但在大多数关系数据库中的概念是相同的:

  • (堆栈溢出)
  • (MSDN)
基本上,您可以创建一个
INSERT
触发器,每当在
student
中插入新条目时,该触发器都会将新条目插入
new\u stud
。在SQL Server中,语法如下所示:

CREATE TRIGGER new_student_trigger ON student
AFTER INSERT AS
BEGIN
   INSERT INTO new_stud (student_id)
   SELECT student_id FROM inserted;
END

首先,你应该用你正在使用的数据库标记你的问题。第二,如果你想要一个“自动插入”,你不应该考虑“游标”,你应该考虑“触发器”。这是用于哪种RDBMS的?我如何处理合并查询。因为触发器的执行会稍微减慢过程@Heinzi@TanvirPatel:这就像问“我怎么能对付一只蝴蝶”。此处不需要合并查询。