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

MySQL如何設置自動增長序列SEQUENCE的方法

 更新時間:2021年12月22日 10:25:26   作者:ReaderWriter  
本文主要介紹了MySQL如何設置自動增長序列SEQUENCE的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文主要介紹了MySQL如何設置自動增長序列 SEQUENCE,具體如下:

解決思路:由于mysql不帶sequence,所以要手寫的,創(chuàng)建一張儲存sequence的表(emp_seq),然后手動插入一條數(shù)據(jù) ,最后自定義一個函數(shù)來處理要增長的值。

1.創(chuàng)建表emp_seq,用來存放sequence值:

說明:

  • name這個列,是為了讓函數(shù)更好的通過條件來進行DML操作,
  • start_value,儲存了自增序列開始時的值,
  • increment_value,存儲了自增序列步進的值。
create table emp_seq (
	name varchar(50) not null primary key,
	start_value int not null,
	increment_value int not null default 1
);

2.手動插入數(shù)據(jù):

說明:

  • ‘empno'見名之意,
  • 第一個1,說明序列從1開始,
  • 第二個1,說明序列每次增長1。
insert into emp_seq values('empno',1,1);

3.定義函數(shù) nextval:

說明:

  • DELIMITER // ->定義語句結(jié)束符,其中//前面有一個空格,平常我們都是用分號;作為語句結(jié)束符。但是創(chuàng)建的函數(shù)中,是多條語句組合而成,每條語句也是使用分號;作為語句結(jié)束符,若沒有重新定義語句結(jié)束符,數(shù)據(jù)庫會認為declare i int;這里的分號是結(jié)束符,會報錯。所以在這我們重新定義一個語句結(jié)束符//,直到end;//這里才會結(jié)束整段代碼。
  • function 自定義函數(shù) (user-defined function UDF),它是對MySQL功能的一個擴展,
  • declare 聲明變量
DELIMITER //
create function nextval(str varchar(50)) returns integer
begin
	declare i int;
	set i=(select start_value from emp_seq where name=str);
	update emp_seq
		set start_value=i+increment_value
	where name=str;
return i;
end;
//
 

4.恢復默認的語句結(jié)束符:

說明:

  • DELIMITER ; ->定義語句結(jié)束符(其中delimiter后跟了一個空格一個分號),也就是把分號作為語句結(jié)束符。因為上面已經(jīng)把函數(shù)建立好了,所以在這里重新定義結(jié)束符,為的是以后更方便的執(zhí)行SQL語句,平常我們使用SQL語句,習慣用分號作為結(jié)束符的。
DELIMITER ;

5.為了更方便的執(zhí)行SQL命令,我把這些代碼復制到記事本中,并把文件存到D盤根目錄下,改名為emp_seq.sql

?

6.執(zhí)行外部SQL腳本命令

若沒有提示,說明建立成功。如何執(zhí)行外部SQL腳本命令,客官可移步:MySQL執(zhí)行外部sql腳本文件的命令

?

7.成功導入sql腳本后,那咱們就需要驗證一下,進入mysql,并進入數(shù)據(jù)庫,我這里是jsd170101


OK,連續(xù)執(zhí)行sql語句獲取序列,從上圖清楚的看到,結(jié)果從1開始,每次自增1

8.下面說說如何應用在DML語句中

我的數(shù)據(jù)庫里已有empno=6的數(shù)據(jù),這里我讓start_value增長到7,再插入一條信息:

查看下結(jié)果:

到此這篇關(guān)于MySQL如何設置自動增長序列SEQUENCE的方法的文章就介紹到這了,更多相關(guān)MySQL 自動增長序列SEQUENCE內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java三個類加載器及它們的相互關(guān)系

    Java三個類加載器及它們的相互關(guān)系

    Java在需要使用類別的時候,才會將類別加載,Java的類別載入是由類別載入器(Class loader)來達到的,預設上,在程序啟動之后,主要會有三個類別加載器,文中詳細介紹了這三個類加載器,需要的朋友可以參考下
    2021-06-06
  • springBoot mybatis 包掃描實例

    springBoot mybatis 包掃描實例

    這篇文章主要介紹了springBoot mybatis 包掃描實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java實戰(zhàn)之課程在線學習系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)之課程在線學習系統(tǒng)的實現(xiàn)

    本文將采用SpringBoot+Spring+Mybatis+Thyeleaf實現(xiàn)一個課程在線學習系統(tǒng),采用SpringBoot框架實現(xiàn)?前臺模板用的thymeleaf數(shù)據(jù)庫層采用mybatis框架注解模式,感興趣的可以了解一下
    2022-04-04
  • java怎么連接并訪問activemq

    java怎么連接并訪問activemq

    這篇文章主要介紹了java怎么連接并訪問activemq,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Java的鎖機制:synchronized和CAS詳解

    Java的鎖機制:synchronized和CAS詳解

    這篇文章主要介紹了Java的鎖機制synchronized和CAS詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-09-09
  • 學習C語言對后期java有幫助嗎

    學習C語言對后期java有幫助嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于學習C語言對后期java有幫助嗎的基礎(chǔ)文章,有興趣的朋友們可以參考下。
    2020-11-11
  • Spring?Boot?4.0對于Java開發(fā)的影響和前景

    Spring?Boot?4.0對于Java開發(fā)的影響和前景

    探索Spring?Boot?4.0如何徹底革新Java開發(fā),提升效率并開拓未來可能性!別錯過這篇緊湊的指南,它帶你領(lǐng)略Spring?Boot的強大魅力和潛力,準備好了嗎?
    2024-02-02
  • Java基礎(chǔ)總結(jié)之Thymeleaf詳解

    Java基礎(chǔ)總結(jié)之Thymeleaf詳解

    Thymeleaf是一種現(xiàn)代的基于服務器端的Java模板引擎技術(shù),也是一個優(yōu)秀的面向Java的XML、XHTML、HTML5頁面模板,它具有豐富的標簽語言、函數(shù)和表達式,在使用Spring Boot框架進行頁面設計時,一般會選擇Thymeleaf模板,需要的朋友可以參考下
    2021-05-05
  • Java中的ProcessBuilder類詳細解析

    Java中的ProcessBuilder類詳細解析

    這篇文章主要介紹了Java中的ProcessBuilder類詳細解析,ProcessBuilder類是J2SE 1.5在java.lang中新添加的一個新類,此類用于創(chuàng)建操作系統(tǒng)進程,它提供一種啟動和管理進程的方法,需要的朋友可以參考下
    2024-01-01
  • java中ArrayList和LinkedList的區(qū)別詳解

    java中ArrayList和LinkedList的區(qū)別詳解

    這篇文章主要介紹了java中ArrayList和LinkedList的區(qū)別詳解,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01

最新評論