获取一个MySQL表的ID并将其插入另一个表

时间:2012-02-08 13:13:42

标签: .net mysql odbc

我的数据库是MySQL我必须在其中一个表中获取Id并使用vb.net通过odbc将其插入到另一个表中你能帮助我吗

2 个答案:

答案 0 :(得分:1)

用于Sql server

SELECT IDENT_CURRENT('tablename')

对于mY 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();

答案 1 :(得分:1)

INSERT INTO t2 (t1_id) SELECT id FROM t1

如有必要,为选择添加条件

使用此查询获取最后一个ID(假设为AUTO_INCREMENT:

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的评论,如果你是:

  • 使用相同的连接执行单个插入,
  • 不使用持久连接,
  • 不使用连接池

然后你可以使用LAST_INSERT_ID()。

如果

  • 使用持久连接,或
  • 使用连接池或
  • 一次插入多行

然后上面的选项之一是最好的