2009-09-25 78 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 

包含您在最後一個字符串

相關問題