RETURNING返回的PostgreSQL存储值
发布时间:2020-12-13 16:13:24 所属栏目:百科 来源:网络整理
导读:在PostgreSQL中,可以将RETURNING放在INSERT语句的末尾,以便在该值由SERIAL类型自动设置时返回行的主键值. 题: 如何将此值存储在可用于将值插入其他表的变量中? 编辑: 请注意,我想将生成的id插入到多个表中.据我所知,WITH子句仅对单个插入有用.我认为这可
在PostgreSQL中,可以将RETURNING放在INSERT语句的末尾,以便在该值由SERIAL类型自动设置时返回行的主键值.
题: 编辑: 这实际上是糟糕设计的结果;如果没有自然键,除非主键上有句柄,否则很难获取唯一的行;选择的答案反映了所提供的最佳答案,但如果给出了更好的答案,我会选择.
您甚至可以使用data-modifying CTE在单个SQL语句中执行此操作: WITH i1 AS ( INSERT INTO tbl1(txt) VALUES ('foo') RETURNING tbl1_id ) INSERT INTO tbl2(tbl1_id) SELECT * FROM i1 需要PostgreSQL 9.1或更高版本. SQL Fiddle. 回复问题更新 您还可以在单??个查询中插入多个表: WITH i1 AS ( INSERT INTO tbl1(txt) VALUES ('foo') RETURNING tbl1_id ),i2 AS ( INSERT INTO tbl2(tbl1_id) SELECT tbl1_id FROM i1 ) INSERT INTO tbl3(tbl1_id) SELECT tbl1_id FROM i1; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |