如何将表中的最后一个id插入到MySQL的另一个表中?

时间:2010-03-27 06:57:21

标签: php mysql

我想获取数据库中最新项的id,将其递增1并将该新ID插入另一个表中。

我试过了:

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

while ($return = mysql_fetch_assoc($select)) {

   $id = $return['id'];
   $newId = $id++;

}

mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");

但它没有用。怎么办呢?

4 个答案:

答案 0 :(得分:4)

你不应该这样做。而是将新记录插入tableName,然后使用mysql_insert_id()捕获新ID,然后将其插入anotherTable。通过这种方式,您可以避免在相反的情况下可能发生的竞争条件。

答案 1 :(得分:1)

为什么使用while语句?如果您只想要最新的ID,请稍等一下..

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

$return = mysql_fetch_assoc($select);

$id = $return['id'];
$newId = $id + 1;

mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");

答案 2 :(得分:1)

使用mysql_insert_id()获取最后插入的ID

答案 3 :(得分:0)

你可以试试这个:

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

if(! $select)
    die("Query Failed");

$return = mysql_fetch_assoc($select);
$id = $return['id'];
$newId = ++ $id; // post increment does not work...use preincrement.
mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");