相关疑难解决方法(0)

从PostgreSQL中的子查询更新或插入(多行和多列)

我想在postgres做这样的事情:

  • UPDATE table1 SET (col1, col2) = (SELECT col2, col3 FROM othertable WHERE othertable.col1 = 123);

  • INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM othertable)

但是,即使使用文档中提到的postgres 9.0,也不可能获得第1点(http://www.postgresql.org/docs/9.0/static/sql-update.html)

点2似乎也不起作用.我收到以下错误:子查询必须只返回一列.

希望有人为我找到解决方法.否则查询将花费时间:(.

仅供参考:我正在尝试从多个表中选择不同的列并将它们存储到临时表中,以便其他应用程序可以轻松获取准备好的数据.

sql postgresql sql-update

102
推荐指数
3
解决办法
12万
查看次数

如何在PostgreSQL中实现多对多关系?

我相信标题是不言自明的.如何在PostgreSQL中创建表结构以建立多对多关系.

我的例子:

Product(name, price);
Bill(name, date, Products);
Run Code Online (Sandbox Code Playgroud)

sql database postgresql database-design many-to-many

68
推荐指数
1
解决办法
6万
查看次数

PostgreSQL多INSERT ...返回多列

我正在使用Postgres 9.3构建一个数据库作为后端,有3个表:

table1 (user_id, username, name, surname, emp_date)
table2 (pass_id, user_id, password)
table3 (user_dt_id, user_id, adress, city, phone)
Run Code Online (Sandbox Code Playgroud)

可以看出table2并且table3是儿童表table1.
我可以user_idtable1(父)中提取新插入的行:

INSERT INTO "table1" (default,'johnee','john','smith',default) RETURNING userid;
Run Code Online (Sandbox Code Playgroud)

我需要将新提取的id(from table1)插入到这些表的唯一user_id列中table2以及table3其他数据中.基本上3 X INSERT ......
我该怎么做?

sql postgresql insert common-table-expression

6
推荐指数
1
解决办法
3694
查看次数

在postgresql中将两个select语句添加到一个insert into语句中

我通过以下方式制作了一张临时表:

create temporary table return_table 
(
   p1 BIGINT, 
   p2 VARCHAR(45), 
   p3 VARCHAR(45), 
   p4 VARCHAR(45), 
   p5 VARCHAR(45), 
   p6 float, 
   p7float
) on commit drop;
Run Code Online (Sandbox Code Playgroud)

我试图采取2个选择语句并将数据插入该临时表.例如,我有一个名为t1的表,它提供前四个值,然后我希望临时表的后三个值来自另一个表.

到目前为止,我有:

insert into return_table 
(Select var1, var2, var3, var4 
 from t1 where var1 = 10)
Run Code Online (Sandbox Code Playgroud)

这将成功地将4个值放入我的临时表中,然后将其余值保留为null.那没关系,所以当我尝试从另一个表中插入最后三个变量时.例如

insert into return_table 
(Select var1, var2, var3, var4 
 from t1 where var1 = 10, Select var5, var6, var 7 
 from t2 where var6 = 25)
Run Code Online (Sandbox Code Playgroud)

它会引发语法错误.我已经尝试了一些其他的语法更改,但我无法弄清楚在同一行中插入这些select语句的两个结果的正确语法.

任何帮助都会很棒!

postgresql select stored-procedures

3
推荐指数
1
解决办法
1万
查看次数

在Postgres中SELECT*FROM NEW TABLE等价物

在DB2中,我可以执行一个看起来像这样的命令来从插入的行中检索信息:

SELECT *
FROM NEW TABLE (
    INSERT INTO phone_book
    VALUES ( 'Peter Doe','555-2323' )
) AS t
Run Code Online (Sandbox Code Playgroud)

我如何在Postgres中做到这一点?

有办法检索序列,但我需要检索任意列.

我希望将选择与插入合并是出于性能原因.这样我只需要执行一个语句来插入值并从插入中选择值.插入的值来自subselect而不是values子句.我只需要插入1行.

该示例代码取自维基百科插入文章

sql postgresql sql-insert

2
推荐指数
1
解决办法
863
查看次数