[英]SQL(SQL/Oracle) insert value from a select statement
I want to insert (user_id) value from a select statement like below.我想从 select 语句中插入 (user_id) 值,如下所示。 Can this query will work on both sqlserver and oracle?
此查询能否同时在 sqlserver 和 oracle 上运行? Kindly advise.
好心提醒。
insert into b_user (user_id,
user_name,
user_email,
user_address,
user_city,
user_state,
user_country,
user_zip)
values (
select max(user_id) from b_user ,
david brown,
david@david.com,
chicago,
il,
usa,
60007)
No, that query won't work in either Oracle or SQL Server.不,该查询在 Oracle 或 SQL 服务器中均无效。 You can do an
insert
based on a select
statement, however.但是,您可以根据
select
语句进行insert
。 Note that you also have to treat strings as strings and enclose them in quotes.请注意,您还必须将字符串视为字符串并将它们括在引号中。
insert into b_user (user_id,
user_name,
user_email,
user_address,
user_city,
user_state,
user_country,
user_zip)
select max(user_id) user_id,
'david brown',
'david@david.com',
'chicago',
'il',
'usa',
'60007'
from b_user
If we insert bracket ()
around the SELECT
statement, it will work.如果我们在
SELECT
语句两边插入括号()
,它就会起作用。 I tried for SQL Server and it's working for me.我试过 SQL 服务器,它对我有用。 Maybe you can try the following query for the Oracle as well.
也许您也可以尝试对 Oracle 进行以下查询。
insert into b_user (user_id,
user_name,
user_email,
user_address,
user_city,
user_state,
user_country,
user_zip)
values (
(select max(user_id) from b_user),
'david brown',
'david@david.com',
'123 davids street',
'chicago',
'il',
'usa',
60007
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.