我正在通过php导入.sql文件。我的.sql文件包含多个表,我想要特定表的最后插入ID。 那么,如何按表名获取任何表的最后插入ID?
知道如何获取ID吗? 请不要建议,通过选择查询获取id以获得MAX id。
答案 0 :(得分:1)
我们有。
id | value
1 | 10
3 | 20
然后我们插入2 | 15
,因此它已成为
id | value
1 | 10
2 | 15
3 | 20
(提醒一下,我们有一个.sql
文件,而不是实时连接)
现在你想知道,最后一个是2
?如果是这样 - 这是不可能的。 .sql
文件不保留这类信息,只保留裸数据和某些元数据。
答案 1 :(得分:1)
这可以在mysql和mysqli中完成。
$conn = mysqli_connect($servername, $username, $password, $dbname);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('abc', 'xyz', 'abc@example.com')";
if (mysqli_query($conn, $sql)) {
$last_id = mysqli_insert_id($conn);}
在mysql中
mysql_connect($servername, $username, $password);
mysql_select_db($dbname);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('abc', 'xyz', 'abc@example.com')";
if (mysql_query($sql)) {
$last_id = mysql_insert_id();}
答案 2 :(得分:1)
只要定义auto_increment
,就可以从information_schema.tables
检索最后插入的自动增量ID:
select IF(auto_increment = 1,
'No row has been inserted',
auto_increment - @@auto_increment_increment) As LastInsertedId
from information_schema.tables
where table_schema = 'DBName' and table_name = 'TableName';
答案 3 :(得分:0)
尝试这些功能
如果您使用的是PDO,请使用PDO::lastInsertId
如果您使用的是Mysqli,请使用mysqli::$insert_id
但如果必须,请使用mysql_insert_id
。