sqlinsert返回id
Ⅰ mysql 插入數據後返回主鍵
你可以看看這里,大致有三種辦法:
#方法一是使用last_insert_id
SELECTLAST_INSERT_ID();
#方法二是使用max(id),但是不適用高並發環境下。
方法三是創建一個存儲過程,在存儲過程中調用先插入再獲取最大值的操作
#方法四使用@@identity
select@@IDENTITY
#基本MySQL的學習,可以學習這里。使用MariaDB資料庫管理系統。linuxprobe.com/chapter-18.html
#出處:
Ⅱ oracle資料庫,表中有id(自增欄位,主鍵), insert 語句插入一條記錄後要求,返回當前插入記錄的id値。
sequence就是一個序列,你每次執行 select CASE_SEQ.nextval from al 的時候都會返回唯一的一個ID號,因此你可以先執行這個select取到這個ID,如果這個時候有多個用戶在執行這個操作,那麼他們select到的ID絕對跟你的不一樣(sequence就是保證這一點的)。然後你就可以用這個ID插入記錄,然後再返回這個ID就OK了。
代碼:
string sql = "Select CASE_SEQ.currval from al";
OracleConnection conn = DB.getCon();
OracleCommand cmd = conn.CreateCommand();
conn.Open();
string returnID = null;
cmd.CommandText = sql;
returnID = Convert.ToString(cmd.ExecuteScalar()); //獲取ID
sql = "insert into PATIENT_T(pid,name) values(returnID,'黎明')"; //將ID插入資料庫
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
結束了,差不多就是這樣,樓主自己調試一下就行了,注意ID在資料庫中應該是varcahr類型的
Ⅲ sql insert into 插入記錄後返回記錄的ID
可以為B表增加一列,存一個唯一的編號,這樣在插入c表的時候用該編號進行關聯。
插入完成後再更新為B表的主鍵即可。
Ⅳ SQL插入一個數據時,如何獲取ID
試試在insert語句最後加上returning id會在插入後返回插入的這條的id,同理,將id換成別的欄位名會返回指定欄位的值。如果你是pg資料庫的話。
Ⅳ 一個關於SQL的問題:用存儲過程添加一條數據,但是想返回它的自增量ID
你可以再程序中,使用parameters[0].Direction = ParameterDirection.Output; 來接收SQL給你返回的值,也可以在存儲過程中最後添加完那裡加入select @@IDENTITY 直接查詢最後一個插入的ID值。
Ⅵ 如何在sql中插入記錄時返回id(id為自動增長)
insert into [table] values(null) select SCOPE_IDENTITY()
重點在插入後面的select
Ⅶ 如何在insert的同時返回插入記錄的id
在ACCESS資料庫中,不能用SCOPE_IDENTITY或者 LAST_INSERT_ID(),只能用於SQL資料庫中。
還是分兩條語句吧。先取最後一ID號再加1就是要返回的ID,用另一語句存入該ID就可以了。
sql="insert into Proctinfo([ProctName],[CateID]) values('"& ProctName&"',"&CateID&")"
set rs_conn=conn.execute("select top 1 id from Proctinfo order by id desc")
sql_conn="insert into ProctConn([ProID],[CateID]) values("&rs_conn("id")+1&"," & CateID&")"
conn.execute(sql)
conn.execute(sql_conn)
Ⅷ sql server返回插入記錄的ID(多條記錄)
你的這個需求好象直接再把記錄插入到表2就可以,但我估計你不是這個意思。
比較笨的辦法,可以定義一個數組用於記錄表1的ID值,或者用個臨時表來記錄表一新增加的記錄ID列表。
insert後,query的指針應該還是停留在最新增加的記錄上的,因此是可以取得到ID值的。
代碼如下,假設表一隻有二個欄位,一個是ID(自動增量),一個是欄位A(字元型),
var
sql:string;
id1:integer;
begin
sql:='insert into 表一 ('''+欄位A+''') values ('''+ '內容'+''')';
query1.close;
query1.sql.clear;
query1.sql.add(sql);
query1.Execsql;
id1:=query1.fieldbyname('id').asinteger;
//接下來可以把ID1的值寫入臨時表或者數組了,如果是需要不同的機器取得ID值,可以用臨時表,不過速度會慢些,如果只是本機取得,就用數組好了。
//後面的代碼略
...
...
end;
上述代碼我沒有條件試,應該可以,另外還可以用append的方法追加記錄,這樣就一定可以用上面的方法取到ID值了。
var
id1:integer;
begin
query1.append;
query1.fieldbyname('欄位A').asstring = '內容';
query1.post;
id1:=query1.fieldbyname('ID').asinteger;
//這種方法一定可以取得到ID值。
//後面你自行對取得的ID進行存儲就行了,臨時表或者數組都可以。代碼略
end;
Ⅸ mybatis 做 insert操作的時候 怎麼才能返回插入的那條數據的id
1、useGeneratedKeys=」true」 可以獲取自增長的ID 只支持具有自增長方式的那種資料庫(mysql, mssql 等 但 oracle 就不支持了 ) 所以可以使用selectKey來獲取
eg:
<insert id="xxx" parameterType="yyy" useGeneratedKeys="true">
insert into table(...) values (...)
<selectKey resultType="long" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() AS id
</selectKey>
</insert>123456
2、對於不支持自動生成主鍵(如Oracle),可以採用以下方式
eg:
<insert id="xxx" parameterType="yyy">
<selectKey keyProperty="id" resultType="long" o
Ⅹ PostgreSQL,insert一條記錄,如何返回剛剛插入的這條記錄的id。
使用postgresql的returning語句。
insert into ... returning id;可以返回剛插入數據的id