2009-09-25 80 views
2

我有一个表。主键是id并自动递增。 现在,当我插入新记录时,我需要获取记录更新的ID。 我该怎么做?如果我使用查询...MYSQL:SQL查询来获取自动增量字段的值

select max(id) from table_name 

...执行后我可以得到id。但我能确定它刚插入的记录的ID吗?因为很多人会同时使用该应用程序。

我使用的是php和mysql。

可以ayone provie我在PHP与MySQL示例代码片段?

+3

看样子你是刚开始使用PHP和MySQL所需的信息。你会发现PHP手册(http://ca2.php.net/manual/en/index.php)非常有用,非常清楚。 MySQL手册(http://dev.mysql.com/doc/)也很广泛。 – dnagirl 2009-09-25 15:20:51

回答

1

使用相同的连接,运行此查询下一个:

SELECT LAST_INSERT_ID() 

你的数据库驱动程序可能有一个方便的功能。

阅读文档。

+0

你是什么意思我使用相同的连接? 你可以给我示例代码在PHP与MySQL – user177785 2009-09-25 15:15:32

+0

相同的连接意味着关闭或开始另一个连接到数据库之前。 – random 2009-09-25 15:38:54

2

在SQL可以做到这一点

SELECT LAST_INSERT_ID() 

在PHP中可以调用mysql_insert_id()

5

如果你想要找出自动增量列中的最新ID,您只需在插入查询后立即运行mysql_insert_id()函数。

像这样:

//--connection already made to database 
//--now run your INSERT query on the table 
mysql_query("INSERT INTO table_name (foo_column) VALUES ('everlong')"); 

//-- right after that previous query, you run this 
$newest_id = mysql_insert_id(); 

现在$newest_id将包含插入最新的行的ID。

0

这里是例如在PHP中:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('mydb'); 

mysql_query("YOUR QUERY HERE", $link); 
$inserted_id = mysql_insert_id($link)); 
1

,你可以用它来获取下一个AUTO_INCREMENT值(因为你已经连接到服务器和价值选择的数据库;

$query = "SHOW TABLE STATUS LIKE 'tbl_name'"; 
$result = mysql_query($query); 
$auto_incr_val = mysql_result($result, 0, 'Auto_increment'); 
echo $auto_incr_val; 

这将给你在auto_increment列将被使用的值。 编辑:对不起。这不是你的问题....

0

Q uery

show create table 

包含您在最后一个字符串