包含mysql數據庫auto的詞條

本文目錄一覽:

如何更改mysql中auto

–創建表時指定AUTO_INCREMENT自增值的初始值:

mysqlCREATE TABLE BIN_TBL (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;

–通過ALTER TABLE 修改初始值(但要大於表中的AUTO_INCREMENT自增值,否則設置無效):

mysqlATLER TABLE BIN_TBL AUTO_INCREMENT=100;

–如果自增序列的最大值被刪除了,則在插入新記錄時,該值被重用。

就是說如果表中原本有AUTO_INCREMENT屬性值連續為78、100的值,但100這個數據被刪除了,下此再添加數據的時候自增值為101,100被重用了。

即使在你將整個表中的所有數據delete清空後,之前的自增序列最大值還是會被重用。解決辦法是:

使用ATLER TABLE BIN_TBL AUTO_INCREMENT=0;重新設置自增初始值。

———————————————————————————————————————————————–

–設置AUTO_INCREMENT_INCREMENT以及AUTO_INCREMENT_offset用戶變量值:(重啟MySQL之後,這些修改會恢復為初始值1)

mysqlSET auto_increment_increment=10; #自增量每次增加的值改為10,

mysqlSET auto_increment_offset=2; #第一次加載數值時的偏移值的個位值

mysqlSHOW VARIABLES LIKE ‘AUTO_INC%’; #查看修改後變量的值

mysql 怎麼設置 auto

創建表時指定AUTO_INCREMENT自增值的初始值:

mysqlCREATE TABLE BIN_TBL (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;

通過ALTER TABLE 修改初始值(但要大於表中的AUTO_INCREMENT自增值,否則設置無效):

mysqlATLER TABLE BIN_TBL AUTO_INCREMENT=100;

mysql中auto_increment是幹什麼的?

MySQL的中AUTO_INCREMENT類型的屬性用於為一個表中記錄自動生成ID功能.

可在一定程度上代替Oracle,PostgreSQL等數據庫中的sequence。

在數據庫應用,我們經常要用到唯一編號,以標識記錄。在MySQL中可通過數據列的AUTO_INCREMENT屬性來自動生成。

可在建表時可用“AUTO_INCREMENT=n”選項來指定一個自增的初始值。

可用alter table table_name AUTO_INCREMENT=n命令來重設自增的起始值。

當插入記錄時,如果為AUTO_INCREMENT數據列明確指定了一個數值,則會出現兩種情況,

情況一,如果插入的值與已有的編號重複,則會出現出錯信息,因為AUTO_INCREMENT數據列的值必須是唯一的;

情況二,如果插入的值大於已編號的值,則會把該插入到數據列中,並使在下一個編號將從這個新值開始遞增。也就是說,可以跳過一些編號。

如果自增序列的最大值被刪除了,則在插入新記錄時,該值被重用。

如果用UPDATE命令更新自增列,如果列值與已有的值重複,則會出錯。如果大於已有值,則下一個編號從該值開始遞增。

擴展資料

在使用AUTO_INCREMENT時,應注意以下幾點:

1、AUTO_INCREMENT是數據列的一種屬性,只適用於整數類型數據列。

2、設置AUTO_INCREMENT屬性的數據列應該是一個正數序列,所以應該把該數據列聲明為UNSIGNED,這樣序列的編號個可增加一倍。

3、AUTO_INCREMENT數據列必須有唯一索引,以避免序號重複(即是主鍵或者主鍵的一部分)。

4、AUTO_INCREMENT數據列必須具備NOT NULL屬性。

5、AUTO_INCREMENT數據列序號的最大值受該列的數據類型約束,如TINYINT數據列的最大編號是127,如加上UNSIGNED,則最大為255。

一旦達到上限,AUTO_INCREMENT就會失效。

6、當進行全表刪除時,MySQL AUTO_INCREMENT會從1重新開始編號。

這是因為進行全表操作時,MySQL(和PHP搭配之最佳組合)實際是做了這樣的優化操作:先把數據表裡的所有數據和索引刪除,然後重建數據表。

7、如果想刪除所有的數據行又想保留序列編號信息,可這樣用一個帶where的delete命令以抑制MySQL(和PHP搭配之最佳組合)的優化:delete from table_name where 1。

也可以用last_insert_id()獲取剛剛自增過的值。

參考資料:IT專家網-MYSQL中取得最後一條記錄

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293661.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:14
下一篇 2024-12-26 13:14

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28

發表回復

登錄後才能評論