<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當前位置:首頁>軟件介紹>MySQL LAST_INSERT_ID詳解 查詢:
               
          MySQL LAST_INSERT_ID詳解

                  LAST_INSERT_ID() LAST_INSERT_ID(expr) 

                  自動返回最后一個INSERT或 UPDATE 問詢?yōu)?AUTO_INCREMENT列設置的第一個 發(fā)生的值。 

                  mysql> SELECT LAST_INSERT_ID(); 

                  -> 195 

                  產(chǎn)生的ID 每次連接后保存在服務器中。這意味著函數(shù)向一個給定客戶端返回的值是該客戶

                  端產(chǎn)生對影響AUTO_INCREMENT列的最新語句第一個 AUTO_INCREMENT值的。這個值不能被其

                  它客戶端影響,即使它們產(chǎn)生它們自己的 AUTO_INCREMENT值。這個行為保證了你能夠找回

                  自己的 ID 而不用擔心其它客戶端的活動,而且不需要加鎖或處理。(因為last_insert_id是針對connection的) 

                  假如你使用一個非“magic”值來更新某一行的AUTO_INCREMENT 列,則LAST_INSERT_ID() 的

                  值不會變化(換言之, 一個不是 NULL也不是 0的值)。 

                  重點: 假如你使用單INSERT語句插入多個行, LAST_INSERT_ID() 只返回插入的第一行產(chǎn)

                  生的值。其原因是這使依靠其它服務器復制同樣的 INSERT語句變得簡單。 

                  例如: 

                  mysql> USE test; 

                  Database changed 

                  mysql> CREATE TABLE t ( 

                  -> id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 

                  -> name VARCHAR(10) NOT NULL 

                  -> ); mysql> INSERT INTO t VALUES (NULL, 'Bob'); mysql> SELECT * FROM 

                  t;+----+------+| id | name |+----+------+| 1 | Bob | mysql> SELECT 

                  LAST_INSERT_ID(); -> 1; mysql> INSERT INTO t VALUES (NULL, 'Mary'), (NULL, 

                  'Jane'), (NULL, 'Lisa'); mysql> SELECT * FROM t;+----+------+| id | name || 1 | Bob 

                  || 2 | Mary || 3 | Jane || 4 | Lisa |+----+------+ mysql> SELECT LAST_INSERT_ID(); 

                  ->2; 

                  雖然第二個問詢將3 個新行插入 t, 對這些行的第一行產(chǎn)生的 ID 為 2, 這也是 

                  LAST_INSERT_ID()返回的值。 

                  假如你使用 INSERT IGNORE而記錄被忽略,則AUTO_INCREMENT 計數(shù)器不會增量,而LAST_INSERT_ID() 返回0, 這反映出沒有插入任何記錄。 

                  常用用法 

                  若給出作為到LAST_INSERT_ID()的參數(shù)expr ,則參數(shù)的值被函數(shù)返回,并作為被

                  LAST_INSERT_ID()返回的下一個值而被記憶。這可用于模擬序列: 

                  創(chuàng)建一個表,用來控制順序計數(shù)器并使其初始化:mysql> CREATE TABLE sequence (id INT NOT NULL); mysql> INSERT INTO sequence VALUES (0); 使用該表產(chǎn)生這樣的序列數(shù) : 

                  mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1); mysql> SELECT LAST_INSERT_ID(); 

                  ->1; 

                  UPDATE 語句會增加順序計數(shù)器并引發(fā)向LAST_INSERT_ID() 的下一次調用,用來返回升級后的值。 SELECT 語句會檢索這個值。 mysql_insert_id() C API函數(shù)也可用于獲取這個值。 

                  你可以不用調用LAST_INSERT_ID()而產(chǎn)生序列,但這樣使用這個函數(shù)的效用在于 ID值被保存在服務器中,作為自動產(chǎn)生的值。它適用于多個用戶,原因是多個用戶均可使用 UPDATE語句并用SELECT語句(或mysql_insert_id()),得到他們自己的序列值,而不會影響其它產(chǎn)生他們自己的序列值的客戶端或被其它產(chǎn)生他們自己的序列值的客戶端所影響。 

                  注意, mysql_insert_id() 僅會在INSERT 和UPDATE語句后面被升級, 因此你不能在執(zhí)行了其它諸如SELECT或 SET 這樣的SQL語句后使用 C API 函數(shù)來找回 LAST_INSERT_ID(expr) 對應的值。 

                  


          MySQL優(yōu)化策略Infobright基于MySQL的數(shù)據(jù)倉庫
          MySQL常用命令MySQL數(shù)據(jù)庫同步
          MySQL常用語句常用基本MySQL語句
          MySQL創(chuàng)建用戶MySQL學習分享
          MySQL常用命令用法MySQL的部分用法
          MySQL讀寫分離Amoeba的實現(xiàn) MySQL的分頁的優(yōu)化
          MySQL正則表達式的描述MySQL的命名規(guī)則
          MySQL的information_schema數(shù)據(jù)庫介紹 MySQL數(shù)據(jù)庫知識詳解
          信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
          • 勁爆價:
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 成人毛片女人18 | 国内屄视频 | 狠狠撸电影网 | 操鸡巴网站 | 色色色色大香蕉 | 东京热精品视频 | 久久婷婷夜色精品国产冻传媒 | 色亚洲婷婷 | 69av成人 | 黄片视频链接 |