是否可以从插入语句中选择?例如:从插入中选择
SELECT id FROM (INSERT INTO table (col1, col2) VALUES (val1, val2));
其中id
是一个自动增量主键。
是否可以从插入语句中选择?例如:从插入中选择
SELECT id FROM (INSERT INTO table (col1, col2) VALUES (val1, val2));
其中id
是一个自动增量主键。
这不是在这样的方式可能的,因为INSERT
不适用于SELECT
返回虚拟表。但是你可以使用currval(regclass)
序列功能得到ID的实际值:
SELECT currval('yourTableName_id_seq'::regclass);
currval
---------
1
(1 row)
编辑:
使用RETURNING
clause(可用自PostgreSQL的8.2):
INSERT INTO yourTableName (col1, col2) VALUES ('aaa', 'bbb') RETURNING id;
id
----
2
(1 row)
“SELECT ID FROM MYTABLE其中ID为NULL;
“ID” 必须是一个AUTO_INCREMENT列,使其工作 它将返回LAST_INSERT_ID就像LAST_INSERT_ID()是意料中的事
。例如: 的MySQL> INSERT INTO订单(customer_cust_id,orderdatetime,消息,TAXRATE,shippingprice) - >选择 '1',NOW(),NULL,TAXRATE,shippingprice FROM顾客 - > WHERE的cust_id = '1'; “
我在寻找一种方式在它创建的时候抓住ID,因为插入和选择之间可能会发生另一个插入,所以最近的入口不是我想要的那个......并且刚刚说过,我现在是g oing看交易 – Pikaling
那'RETURNING'子句正是我想要的,谢谢! – Pikaling