最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中使用序列Sequence的方式總結

 更新時間:2022年09月09日 16:01:48   作者:笨鳥先飛的菜鳥  
序列是一組整數(shù)如1,2,3,...為了在需要時生成的,這篇文章主要給大家介紹了關于MySQL中使用序列Sequence的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

在Oracle數(shù)據(jù)庫中若想要一個連續(xù)的自增的數(shù)據(jù)類型的值,可以通過創(chuàng)建一個sequence來實現(xiàn)。而在MySQL數(shù)據(jù)庫中并沒有sequence。通常如果一個表只需要一個自增的列,那么我們可以使用MySQL的auto_increment(一個表只能有一個自增主鍵)。若想要在MySQL像Oracle中那樣使用序列,我們該如何操作呢?

例如存在如下表定義:

create table `t_user`(
    `id` bigint auto_increment primary key,
    `user_id` bigint unique comment '用戶ID',
    `user_name` varchar(10) not null default '' comment '用戶名'
);

其中user_id要求自增有序且唯一。實現(xiàn)方式有很多比如雪花算法、使用Redis或者Zookeeper等都可以獲取一個滿足條件的值,這里就不一一介紹。這里介紹使用MySQL的auto_increment和last_insert_id()來實現(xiàn)類似Oracle中的序列的方式。

方式一、使用存儲過程

一、創(chuàng)建一個包含自增主鍵的簡單表。

示例如下:

create table `t_user_id_sequence` (
    `id` bigint not null auto_increment primary key,
    `t_text` varchar(5) not null default '' comment 'insert value'
);

二、創(chuàng)建一個存儲過程

delimiter &&
create procedure `pro_user_id_seq` (out sequence bigint)
begin
    insert into t_user_id_sequence (t_text) values ('a');
    select last_insert_id() into sequence from dual;
    delete from t_user_id_sequence;
end &&
delimiter ;

三、測試

call pro_user_id_seq(@value);
select @value from dual;

使用存儲過程的方式需要調(diào)用一次存儲過程再進行賦值,稍微有點麻煩。

方式二、使用function

一、創(chuàng)建一個生成sequence的函數(shù)

delimiter &&
create function user_id_seq_func() returns bigint
begin
    declare sequence bigint;
    insert into t_user_id_sequence (t_text) values ('a');
    select last_insert_id() into sequence from dual;
    delete from t_user_id_sequence;
    return sequence;
end &&
delimiter ;

二、測試

select user_id_seq_func() from dual;
 
insert into t_user (user_id, user_name) values (user_id_seq_func(), 'java');
select * from t_user;

總結

到此這篇關于MySQL中使用序列Sequence方式的文章就介紹到這了,更多相關MySQL使用序列Sequence內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Mysql修改datadir導致無法啟動問題解決方法

    Mysql修改datadir導致無法啟動問題解決方法

    這篇文章主要介紹了Mysql修改datadir導致無法啟動問題解決方法,本文原因是SELINUX導致,用關閉SELINUX的方法解決了這個問題,需要的朋友可以參考下
    2015-02-02
  • 簡單介紹MySQL中GROUP BY子句的使用

    簡單介紹MySQL中GROUP BY子句的使用

    這篇文章主要介紹了簡單介紹MySQL中GROUP BY子句的使用,是MySQL入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • MySQL 5.7增強版Semisync Replication性能優(yōu)化

    MySQL 5.7增強版Semisync Replication性能優(yōu)化

    這篇文章主要介紹了MySQL 5.7增強版Semisync Replication性能優(yōu)化,本文著重講解支持發(fā)送binlog和接受ack的異步化、支持在事務commit前等待ACK兩項內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • MySQL replace into 語句淺析(一)

    MySQL replace into 語句淺析(一)

    這篇文章主要介紹了MySQL replace into 語句淺析(一),本文講解了replace into的原理、使用方法及使用的場景和使用示例,需要的朋友可以參考下
    2015-05-05
  • mysql重復索引與冗余索引實例分析

    mysql重復索引與冗余索引實例分析

    這篇文章主要介紹了mysql重復索引與冗余索引,簡單說明了重復索引與冗余索引的概念、應用場景并結合實例形式分析了mysql重復索引與冗余索引相關操作技巧,需要的朋友可以參考下
    2019-07-07
  • MySQL存儲過程使用實例詳解

    MySQL存儲過程使用實例詳解

    本文介紹關于在MySQL存儲過程游標使用實例,包括簡單游標使用與游標循環(huán)跳出等方法
    2013-11-11
  • mysql執(zhí)行腳本導入表和數(shù)據(jù)后中文注釋亂碼的問題解決

    mysql執(zhí)行腳本導入表和數(shù)據(jù)后中文注釋亂碼的問題解決

    本人在使用不同版本下進行操作時,就會出現(xiàn)中文亂碼的問題,,例如我本地安裝mysql8,服務器安裝的是mysql5,然后本地連接服務器的mysql后,執(zhí)行SQL腳本之后發(fā)現(xiàn)中文全部亂碼,所以本文介紹了mysql執(zhí)行腳本導入表和數(shù)據(jù)后中文注釋亂碼的問題解決,需要的朋友可以參考下
    2024-04-04
  • mysql數(shù)據(jù)庫的分區(qū)表示例代碼

    mysql數(shù)據(jù)庫的分區(qū)表示例代碼

    這篇文章主要介紹了mysql數(shù)據(jù)庫的分區(qū)表的相關資料,文章介紹了兩種創(chuàng)建SQL表分區(qū)的方法,分別是手動創(chuàng)建和使用MySQL的定時事件來自動創(chuàng)建分區(qū),手動創(chuàng)建分區(qū)時,需要在代碼中判斷分區(qū)并新增,可能會引入一些問題,需要的朋友可以參考下
    2024-11-11
  • MYSQL數(shù)據(jù)庫表結構優(yōu)化方法詳解

    MYSQL數(shù)據(jù)庫表結構優(yōu)化方法詳解

    這篇文章主要介紹了MYSQL數(shù)據(jù)庫表結構優(yōu)化方法,總結分析了mysql針對表結構優(yōu)化的數(shù)據(jù)類型選擇、范式化操作、表的拆分等相關使用技巧,需要的朋友可以參考下
    2019-08-08
  • mysql 5.0.45 (修改)拒絕服務漏洞

    mysql 5.0.45 (修改)拒絕服務漏洞

    mysql 5.0.45 (修改)拒絕服務漏洞的方法,追求安全的朋友可以參考下。
    2010-07-07

最新評論

闽侯县| 富锦市| 桃源县| 正宁县| 高唐县| 西吉县| 赞皇县| 温宿县| 安宁市| 天津市| 炉霍县| 高清| 万宁市| 吉林市| 开封市| 栾城县| 大丰市| 嘉禾县| 广宁县| 洛川县| 潞城市| 宿松县| 南漳县| 内黄县| 资阳市| 嵊州市| 方正县| 大兴区| 哈密市| 苍溪县| 上思县| 陵水| 石棉县| 黄石市| 永吉县| 南木林县| 崇礼县| 麟游县| 睢宁县| 黄陵县| 绍兴市|