Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我需要在不同的表中插入2条记录,_Sql_Postgresql_Insert - Fatal编程技术网

Sql 我需要在不同的表中插入2条记录,

Sql 我需要在不同的表中插入2条记录,,sql,postgresql,insert,Sql,Postgresql,Insert,我需要在两个不同的表中插入两条记录。问题是这两个记录将具有相同的Id。 例如: 我有我的曼托表,它的IdMan和oters字段。我还有我的服务表,带有IdServ 我该怎么做才能使这个相等?我正在使用Postgre。Mannto表的Id是串行的,我需要在服务表中将该Id用作外键 我尝试了以下方法,但无效: Insert into Mannto ( idMan, field 1 field2 ...etc) values ( default, 'f1', 'f2'...e

我需要在两个不同的表中插入两条记录。问题是这两个记录将具有相同的Id。 例如:

我有我的曼托表,它的IdMan和oters字段。我还有我的服务表,带有IdServ

我该怎么做才能使这个相等?我正在使用Postgre。Mannto表的Id是串行的,我需要在服务表中将该Id用作外键

我尝试了以下方法,但无效:

Insert into Mannto ( idMan, field 1 field2 ...etc) 
            values ( default, 'f1', 'f2'...etc)

Insert into Service ( idServ, fkMannto, field1...etc) 
             values (default, (in this part I need the same ManntoId called idMan), 'f1')
谢谢你能提供的任何帮助

INSERT INTO Mannto ( field1, field2 ...etc) VALUES ( 'f1', 'f2'...etc)
  RETURNING idMan;


也许这不是最好的解决方案,但你可以使用触发器

CREATE TRIGGER MannToTrigger
AFTER INSERT OR UPDATE OR DELETE ON MannTo
    FOR EACH ROW EXECUTE PROCEDURE insertService();

获取MannTo插入的最后一个代码,并在每次插入后抛出该过程。

也许这不是最好的解决方案,但您可以使用触发器

CREATE TRIGGER MannToTrigger
AFTER INSERT OR UPDATE OR DELETE ON MannTo
    FOR EACH ROW EXECUTE PROCEDURE insertService();

获取MannTo插入的最后一个代码,并在每次插入后抛出该过程。

当字段idMan使用序列创建新值时,您可以在下一次插入时使用以下方法引用该值:


当字段idMan使用序列创建新值时,您可以在下一次插入时使用以下方法引用此值:


天哪,你们太棒了!!!真的非常感谢,它工作得非常好!!还有:)再次谢谢你!!而对于删除应该是相同的吗?开始;从服务中删除,其中pkmantenimiento=?;从mantenimiento中删除,其中idmantenimiento=CURRVAL(“序列的名称”);犯罪不,那不行。也不需要,只需在idmantenimiento上创建一个外键,该外键引用pkmantenimiento,当您删除表servicio.OMG MEN中的记录时,数据库将自动完成Mantenimient中的删除操作您太棒了!!!真的非常感谢,它工作得非常好!!还有:)再次谢谢你!!而对于删除应该是相同的吗?开始;从服务中删除,其中pkmantenimiento=?;从mantenimiento中删除,其中idmantenimiento=CURRVAL(“序列的名称”);犯罪不,那不行。也不需要,只需在idmantenimiento上创建一个外键,当您删除表servicio中的记录时,数据库将自动执行对pkmantenimiento的引用和Mantenimient中的删除。我尝试了该方法,但遇到了一些问题,但还是非常感谢:)对于回答,我尝试了该方法,但遇到了一些问题,不过还是非常感谢你的回答