欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql如何變更自增主鍵id起始值

 更新時(shí)間:2024年08月05日 17:06:47   作者:Java-Talk  
這篇文章主要介紹了mysql如何變更自增主鍵id起始值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql變更自增主鍵id起始值

account 庫 user 表結(jié)構(gòu)

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(50) NOT NULL COMMENT '用戶名',
  `age` int(11) NOT NULL COMMENT '年齡',
  `create_datetime` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
  `update_datetime` datetime NOT NULL COMMENT '更新時(shí)間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

獲取自增id字段的下一個(gè)值

方法一:

SELECT auto_increment FROM information_schema.tables where table_schema="account" and table_name="user";

得到如下結(jié)果:

方法二:

SHOW table STATUS like 'user'

修改自增id字段的初始值

alter table user AUTO_INCREMENT=500

其他 SQL 說明

  • 1 select last_insert_id() from user

在使用 Insert 語句后,緊接著使用 select last_insert_id() 才有效,在沒有使用過 Insert 語句的情況下,查詢返回的結(jié)果為0。

  • 2 select max(id) from user

如果手動(dòng)刪除了最新的數(shù)據(jù),使用 max(id)查詢的結(jié)果是當(dāng)前剩下數(shù)據(jù)中最大的記錄,而新插入數(shù)據(jù)則不一定從這個(gè)數(shù)字開始計(jì)數(shù)。

mysql設(shè)置主鍵自動(dòng)增長起始值

實(shí)現(xiàn)目標(biāo)

mysql下將自增主鍵的值,從10000開始,即實(shí)現(xiàn)自增主鍵的種子為10000。

方案1)

使用alter table `tablename` AUTO_INCREMENT=10000

創(chuàng)建自增主鍵之后,使用alter table `tablename` AUTO_INCREMENT=10000實(shí)現(xiàn)修改表起始值。

drop table if exists `trace_test`;

CREATE TABLE `trace_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

alter table `trace_test` AUTO_INCREMENT=10000;

insert into `trace_test`(`name`)values('name2');
select * from `trace_test`;
Result:

id     name
10000  name2

方案2)

創(chuàng)建表時(shí)設(shè)置AUTO_INCREMENT 10000參數(shù)

drop table if exists `trace_test`;

CREATE TABLE `trace_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT 10000 DEFAULT CHARSET=utf8 ;

insert into `trace_test`(`name`)values('name2');
select * from `trace_test`;
Result:

id     name
10000  name2

3)如果表已有數(shù)據(jù) truncate之后設(shè)置

auto_increment=10000,可行。

drop table if exists `trace_test`;

CREATE TABLE `trace_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

insert into `trace_test`(`name`)values('name1');
select * from `trace_test`;

truncate table `trace_test`;
alter table `trace_test` AUTO_INCREMENT=10000;

insert into `trace_test`(`name`)values('name2');
select * from `trace_test`;
Result1:

id     name
10000  name
Result2:

id     name
10000  name2

4)如果表已有數(shù)據(jù) delete from之后設(shè)置

auto_increment=10000,可行。

drop table if exists trace_test;

CREATE TABLE trace_test (
  id int(20) NOT NULL AUTO_INCREMENT,
  name varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

insert into trace_test(name)values('name1');
select * from trace_test;

delete from `trace_test`;

alter table trace_test AUTO_INCREMENT=10000;

insert into trace_test(name)values('name2');
select * from trace_test;
Result1:

id     name
10000  name
Result2:

id     name
10000  name2

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SQL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)

    SQL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄猄QL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • MySQL控制流函數(shù)(-if?,elseif,else,case...when)

    MySQL控制流函數(shù)(-if?,elseif,else,case...when)

    這篇文章主要介紹了MySQL控制流函數(shù)(-if?,elseif,else,case...when),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • MySQL查詢重復(fù)記錄和刪除重復(fù)記錄的操作方法

    MySQL查詢重復(fù)記錄和刪除重復(fù)記錄的操作方法

    在MySQL數(shù)據(jù)庫中,有時(shí)候會(huì)出現(xiàn)重復(fù)記錄的情況,這可能會(huì)導(dǎo)致數(shù)據(jù)不準(zhǔn)確或者不符合業(yè)務(wù)需求,為了解決這個(gè)問題,我們可以使用查詢語句來找出重復(fù)記錄,并使用刪除語句來刪除這些重復(fù)記錄,本文給大家介紹了兩種操作方法,需要的朋友可以參考下
    2024-12-12
  • 詳解MySQL中WHERE子句的用法

    詳解MySQL中WHERE子句的用法

    這篇文章主要介紹了詳解MySQL中WHERE子句的用法,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • MySQL中的啟動(dòng)和關(guān)閉命令

    MySQL中的啟動(dòng)和關(guān)閉命令

    這篇文章主要介紹了MySQL中的啟動(dòng)和關(guān)閉命令,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解MySQL如何有效的存儲(chǔ)IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換

    詳解MySQL如何有效的存儲(chǔ)IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換

    本文主要介紹了MySQL如何有效的存儲(chǔ)IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • MySQL如何查看元數(shù)據(jù)鎖阻塞在哪里

    MySQL如何查看元數(shù)據(jù)鎖阻塞在哪里

    這篇文章主要介紹了MySQL如何查看元數(shù)據(jù)鎖阻塞在什么地方的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • MySQL?數(shù)據(jù)庫中數(shù)據(jù)表超詳細(xì)的基本操作

    MySQL?數(shù)據(jù)庫中數(shù)據(jù)表超詳細(xì)的基本操作

    這篇文章主要介紹了MySQL?數(shù)據(jù)庫中數(shù)據(jù)表的基本操作,下面文章會(huì)從創(chuàng)建表的基本語法伊利舉例說明概括全篇數(shù)據(jù)表的基本操作詳情,需要的小伙伴可以參考一下文章的具體內(nèi)容,希望對(duì)你有所幫助
    2021-12-12
  • Linux下MySQL8.0.26安裝教程

    Linux下MySQL8.0.26安裝教程

    文章詳細(xì)介紹了如何在Linux系統(tǒng)上安裝和配置MySQL,包括下載、解壓、安裝依賴、啟動(dòng)服務(wù)、獲取默認(rèn)密碼、設(shè)置密碼、支持遠(yuǎn)程登錄以及創(chuàng)建表,感興趣的朋友一起看看吧
    2024-12-12
  • 一文總結(jié)使用MySQL時(shí)遇到null值的坑

    一文總結(jié)使用MySQL時(shí)遇到null值的坑

    這篇文章給大家總結(jié)了日常使用MySQL時(shí),容易遇到NULL值的坑有哪些,文章通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01

最新評(píng)論