【问题标题】:MYSQL: SQL query to get the value of autoincrement fieldMYSQL:获取自增字段值的 SQL 查询
【发布时间】:2009-09-25 15:03:02
【问题描述】:

我有一张桌子。主键是id,它会自动递增。 现在,当我插入一条新记录时,我需要获取更新记录的 id。 我怎样才能做到这一点?如果我使用查询...

select max(id) from table_name

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

我正在使用 php 和 mysql。

谁能给我一个示例代码sn-p in php with mysql?

【问题讨论】:

标签: php sql mysql


【解决方案1】:

如果您想从自动增量列中找出最新的 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。

【讨论】:

    【解决方案2】:

    假设你使用的是 MySQLi PHP 扩展,你想要的命令是mysqli_insert_id

    【讨论】:

      【解决方案3】:

      在 SQL 中你可以这样做

      SELECT LAST_INSERT_ID() 
      

      在php中你可以调用mysql_insert_id()

      【讨论】:

        【解决方案4】:

        使用相同的连接,接下来运行这个查询:

        SELECT LAST_INSERT_ID()
        

        您的数据库驱动程序可能为此提供了便利功能。

        阅读文档。

        【讨论】:

        • 你是什么意思我使用相同的连接?你能用mysql给我php中的示例代码吗
        • 相同连接意味着在您关闭或开始另一个与数据库的连接之前。
        【解决方案5】:

        您可以使用它来获取下一个 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 列中使用的值。 编辑:对不起..那不是你的问题....

        【讨论】:

          【解决方案6】:

          以下是 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));
          

          【讨论】:

            【解决方案7】:

            查询

            show create table
            

            在最后一个字符串中包含您需要的信息

            【讨论】:

              猜你喜欢
              • 2010-11-27
              • 1970-01-01
              • 1970-01-01
              • 2017-07-28
              • 1970-01-01
              • 2014-09-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多