簡體   English   中英

MySQL Auto Increment Id的奇怪問題

[英]strange issue with MySQL Auto Increment Id

我的表中有一個自動增量ID列,當我使用PHP插入記錄時,它確實可以正常工作。 我必須每小時使用DELETE語句刪除此表中的記錄。 我更改了PHP.ini文件並重新啟動了機器。 出於某種原因,自動增量ID再次從“1”開始。 重新啟動機器時,表中沒有記錄。 我在IIS下運行PHP 5.3.8和MySQL 5.5.21。 如果有任何建議,請告訴我。 這是我的表架構。

    CREATE TABLE `test_table` (
  `test_id` int(11) NOT NULL AUTO_INCREMENT,
  `test_date` datetime DEFAULT NULL,
  `test_location` varchar(2000) NOT NULL,
  `test_summary` varchar(4000) NOT NULL,
  `create_dtm` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`test_id`)
) ENGINE=InnoDB 

這是我的插入查詢

$Sql = "INSERT INTO test_table(test_date, test_location, test_summary) VALUES ('" .sDate. "', '" .$location. "', '" .$summary. "')";

        $Result = mysql_query($Sql) or die(mysql_error());
        $new_id = MySql_Insert_Id();

這是DELETE。

        $Sql1 = "DELETE FROM test_table";
        $Result1 = mysql_query($Sql1) or die(mysql_error());

使用不帶where子句的DELETE與TRUNCATING表相同,因此它們都重置了表的Next AutoIndex值。 (這是人們通常想要/期望的)

可以使用類似下面的內容來解決這個問題:

mysql_query(sprintf(“ALTER TABLE tbl_name AUTO_INCREMENT =%d”,mysql_insert_id()+ 1));

(如果DELETE清除插入值,那么您只需要在DELETE / TRUNCATE之前緩存它)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM