2012-02-08 82 views

回答

1

對於SQL Server

SELECT IDENT_CURRENT('tablename') 

對於我的SQL

INSERT INTO foo (auto,text) 
    VALUES(NULL,'text');   # generate ID by inserting NULL 
INSERT INTO foo2 (id,text) 
    VALUES(LAST_INSERT_ID(),'text'); # use ID in second table 

MySQL的將是LAST_INSERT_ID()功能:

SELECT LAST_INSERT_ID(); 
+0

請確保您鎖定表,如果您使用LAST_INSERT_ID() – Cez 2012-02-08 13:21:39

+0

@ user1197238 - 那麼你想說什麼..... – 2012-02-08 13:32:40

+0

我使用VB .NET語言和連接器是ODBC? – user1197238 2012-02-08 13:51:27

1
INSERT INTO t2 (t1_id) SELECT id FROM t1 

添加條件選擇如有必要

要使用此查詢假設AUTO_INCREMENT得到最後ID:

INSERT INTO t2 (t1_id) SELECT id FROM t1 ORDER BY id DESC LIMIT 1 

要使用此查詢假設有一個時間戳獲取最後的ID記錄(例如創建):

INSERT INTO t2 (t1_id) SELECT id FROM t1 ORDER BY created DESC LIMIT 1 

按照從ypercube的評論,如果你是:

  • 具有相同的連接,進行1次插入,
  • 沒有使用持久連接,並
  • 不使用連接池

然後你可以使用LAST_INSERT_ID()。

如果

  • 使用永久連接,或
  • 使用連接池,或
  • 一次

然後選擇之一以上是插入多行最好

+0

我正在使用VB.NET語言並且連接器是ODBC? – user1197238 2012-02-08 13:47:59

+0

@ user1197238您是否無法執行直接查詢? – Cez 2012-02-08 13:57:25

+0

我想獲取插入到數據庫中的最後一個ID,您可以幫我嗎? – user1197238 2012-02-08 15:02:45

相關問題