当前位置: 首页 > 面试题库 >

将插入的ID插入另一个表

汲利
2023-03-14
问题内容

这是场景:

create table a (
 id serial primary key,
 val text
);

create table b (
 id serial primary key,
 a_id integer references a(id)
);

create rule a_inserted as on insert to a do also insert into b (a_id) values (new.id);

我正在尝试在插入表时创建b引用记录。但是我得到的是null,因为它是自动从序列中生成的。我也尝试了触发器插入,但是结果是一样的。有什么办法解决吗?a``a``new.id``AFTER``FOR EACH ROW


问题答案:

避免使用规则,因为它们会再次咬住您。

在每行运行的表a上使用after触发器。它看起来应该像这样(未经测试):

create function a_ins() returns trigger as $$
begin
  insert into b (a_id) values (new.id);
  return null;
end;
$$ language plpgsql;

create trigger a_ins after insert on a
for each row execute procedure a_ins();


 类似资料:
  • 问题内容: 我有这段代码可以从“ jobseeker”表中选择所有字段,并可以通过将userType设置为“ admin”来更新“ user”表,其中userID =$ userID(此userID是我用户中的一个用户数据库)。然后,该语句应将这些值从“ jobseeker”表插入到“ admin”表中,然后从“ jobseeker表”中删除该用户。sql表很好,我的语句正在将userType更改

  • 我正在使用PHP和MySQL。 将新行插入到具有自动递增 id 列的表中。 在插入此新行时,我想将新插入行的自动递增 id # 复制到同一行/条目中的另一列中。 创建时,新条目/行应具有自动递增的 id 列和具有相同编号的另一列。 我最大的担忧: 我需要所有这些都正确可靠地发生,即使来自其他连接的其他事务可能正在服务器上发生。 我对last_insert_id()知之甚少...我害怕能够可靠地使用

  • 问题内容: 我正在创建一个基于测验的系统,该系统的一部分包括2个表: Answer_bank表: 和Question_bank表: 目的是允许某人创建一个问题和一个答案,答案将以等于的形式存储在答案库表中。我不想在同一张表中使用它,因为这会使我变得更加复杂。 我尝试使用以下PDO / SQL插入两个表中。 不过这个问题我已经是在表总是插入,而不是相同的ID 。这是这样做的不正确方法吗?答案表包括?

  • 批量订单 Purchorder 我已经试了一个星期了。我有这两个表,batchporder和purchord在batchporder表中,我需要插入一行,并获得传递给purchord插入的主id。在purchord中,我需要插入多行,因此我使用了insert\u batch。 控制器 模型 错误1 遇到PHP错误严重性:警告 消息:array_keys()要求参数1为数组,字符串为给定值 文件名:

  • 问题内容: 我有2个不同的表,但各列的命名略有不同。我想从一个表中获取信息,然后将其放入另一个表中。仅当表1中的“信息字段”不为null时,才需要将表1中的信息放入表2中。表2在创建任何东西时都有一个唯一的ID,因此插入的任何东西都需要获得下一个可用的ID号。 表格1 表2 问题答案: 这应该工作。您无需担心Table2中的identify字段。

  • 我试图在从一个表创建一个值后将其插入另一个表我有两个数据库“mem”和“location” 我想从mem表中添加主键id,并将其插入到位置表中的user_id列中。 我有一个sql查询在我的注册表单页面,自动递增'id'在mem表中,但似乎没有添加相同的值到位置表中的user_id, 有人能帮忙吗!