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

mysql 實(shí)現(xiàn)設(shè)置多個(gè)主鍵的操作

 更新時(shí)間:2021年02月07日 10:43:13   作者:只有離開才能永遠(yuǎn)記住  
這篇文章主要介紹了mysql 實(shí)現(xiàn)設(shè)置多個(gè)主鍵的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

user表,身份證號碼要唯一,手機(jī)號碼,郵箱要唯一

實(shí)現(xiàn)方式:

表結(jié)構(gòu)不用動(dòng)。一個(gè)主鍵Id 加索引實(shí)現(xiàn)

如圖類型設(shè)置索引類型為Unique 唯一 選擇欄位,命個(gè)名就行。索引方式btree 就好。ok啦~

補(bǔ)充:mysql實(shí)現(xiàn)多表主鍵不重復(fù)

同一個(gè)數(shù)據(jù)庫中有兩張表,里面字段都是一樣,只是因?yàn)榇娴臄?shù)據(jù)要區(qū)分開。但是主鍵不能重復(fù)。具體實(shí)現(xiàn)如下:

新建數(shù)據(jù)庫 mytest

新建user表和admin表

CREATE TABLE `user` (
 `user_id` INT(11) NOT NULL,
 `user_name` VARCHAR(255) NOT NULL,
 `password` VARCHAR(255) NOT NULL,
 `phone` VARCHAR(255) NOT NULL,
 PRIMARY KEY (`user_id`)
)
COMMENT='用戶表'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
CREATE TABLE `admin` (
 `user_id` INT(11) NOT NULL,
 `user_name` VARCHAR(255) NOT NULL,
 `password` VARCHAR(255) NOT NULL,
 `phone` VARCHAR(255) NOT NULL,
 PRIMARY KEY (`user_id`)
)
COMMENT='管理員表'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

新建序列表:

CREATE TABLE `sequence` (
 `seq_name` VARCHAR(50) NOT NULL,
 `current_val` INT(11) NOT NULL,
 `increment_val` INT(11) NOT NULL DEFAULT '1',
 PRIMARY KEY (`seq_name`)
)
COMMENT='序列表'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

新增一個(gè)序列:

INSERT INTO sequence VALUES ('seq_test', '0', '1');

創(chuàng)建currval函數(shù),用于獲取序列當(dāng)前值:

delimiter #
create function currval(v_seq_name VARCHAR(50)) 
returns integer(11) 
begin
 declare value integer;
 set value = 0;
 select current_val into value from sequence where seq_name = v_seq_name;
 return value;
end;

查詢當(dāng)前值:

select currval('seq_test');

創(chuàng)建nextval函數(shù),用于獲取序列下一個(gè)值:

delimiter #
create function nextval (v_seq_name VARCHAR(50)) returns integer(11) 
begin
 update sequence set current_val = current_val + increment_val where seq_name = v_seq_name;
 return currval(v_seq_name);
end;

查詢下一個(gè)值

select nextval('seq_test');

具體實(shí)現(xiàn):

<insert id="addUser" parameterType="User">
  <selectKey keyProperty="userId" resultType="int" order="BEFORE">
   select nextval('seq_test');
  </selectKey>
  insert into user(user_id,user_name,password,phone) values
  (#{userId},#{userName, jdbcType=VARCHAR},#{password, jdbcType=VARCHAR}, #{phone, jdbcType=VARCHAR})
 </insert>
<insert id="addAdmin" parameterType="Admin">
  <selectKey keyProperty="userId" resultType="int" order="BEFORE">
   select nextval('seq_test');
  </selectKey>
  insert into admin(user_id,user_name,password,phone) values
  (#{userId},#{userName, jdbcType=VARCHAR},#{password, jdbcType=VARCHAR}, #{phone, jdbcType=VARCHAR})
 </insert>

最終實(shí)現(xiàn):

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • MySQL服務(wù)無法啟動(dòng)且服務(wù)沒有報(bào)告任何錯(cuò)誤的解決辦法

    MySQL服務(wù)無法啟動(dòng)且服務(wù)沒有報(bào)告任何錯(cuò)誤的解決辦法

    在啟動(dòng)項(xiàng)目時(shí),發(fā)現(xiàn)昨天能夠跑的項(xiàng)目今天跑不了了,一看原來是mysql數(shù)據(jù)庫出現(xiàn)了問題,下面這篇文章主要給大家介紹了關(guān)于MySQL服務(wù)無法啟動(dòng)且服務(wù)沒有報(bào)告任何錯(cuò)誤的解決辦法,需要的朋友可以參考下
    2023-05-05
  • mysql通過binlog日志復(fù)制主從同步的實(shí)現(xiàn)

    mysql通過binlog日志復(fù)制主從同步的實(shí)現(xiàn)

    本文主要介紹了mysql通過binlog日志復(fù)制主從同步的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • MySQL導(dǎo)入導(dǎo)出助手類庫MysqlHelper安裝使用

    MySQL導(dǎo)入導(dǎo)出助手類庫MysqlHelper安裝使用

    這篇文章主要為大家介紹了MySQL導(dǎo)入導(dǎo)出助手類庫MysqlHelper安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • MYSQL實(shí)現(xiàn)添加購物車時(shí)防止重復(fù)添加示例代碼

    MYSQL實(shí)現(xiàn)添加購物車時(shí)防止重復(fù)添加示例代碼

    在向mysql中插入數(shù)據(jù)的時(shí)候最需要注意的就是防止重復(fù)發(fā)添加數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MYSQL如何實(shí)現(xiàn)添加購物車的時(shí)候防止重復(fù)添加的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • MySQL 5.7.9 服務(wù)無法啟動(dòng)-“NET HELPMSG 3534”的解決方法

    MySQL 5.7.9 服務(wù)無法啟動(dòng)-“NET HELPMSG 3534”的解決方法

    這篇文章主要介紹了MySQL 5.7.9 服務(wù)無法啟動(dòng)-“NET HELPMSG 3534”的解決方法,需要的朋友可以參考下
    2016-12-12
  • Java將excel中的數(shù)據(jù)導(dǎo)入到mysql中

    Java將excel中的數(shù)據(jù)導(dǎo)入到mysql中

    這篇文章主要介紹了Java將excel中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,需要的朋友可以參考借鑒
    2018-05-05
  • SQL算術(shù)運(yùn)算符之加法、減法、乘法、除法和取模的用法例子

    SQL算術(shù)運(yùn)算符之加法、減法、乘法、除法和取模的用法例子

    算術(shù)運(yùn)算符主要用于數(shù)學(xué)運(yùn)算,其可以連接運(yùn)算符前后的兩個(gè)數(shù)值或表達(dá)式,對數(shù)值或表達(dá)式進(jìn)行加(+)、減(-)、乘(*)、除(/)和取模(%)運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于SQL算術(shù)運(yùn)算符之加法、減法、乘法、除法和取模用法的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • MySQL常見內(nèi)置函數(shù)以及其使用教程

    MySQL常見內(nèi)置函數(shù)以及其使用教程

    MySQL數(shù)據(jù)庫中提供了很豐富的函數(shù),MySQL函數(shù)包括數(shù)學(xué)函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、條件判斷函數(shù)、系統(tǒng)信息函數(shù)、加密函數(shù)、格式化函數(shù)等,下面這篇文章主要給大家介紹了關(guān)于MySQL常見內(nèi)置函數(shù)以及其使用的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 如何通過yum方式安裝mysql數(shù)據(jù)庫

    如何通過yum方式安裝mysql數(shù)據(jù)庫

    部署MySQL數(shù)據(jù)庫有多種部署方式,常用的部署方式就有三種,yum安裝、rpm安裝以及編譯安裝,這篇文章主要給大家介紹了關(guān)于如何如果通過yum方式安裝mysql數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 21分鐘 MySQL 入門教程

    21分鐘 MySQL 入門教程

    這篇文章主要介紹了MySQL 入門教程,通過簡單的介紹基本上可以讓你21分鐘就可以了解下mysql
    2014-06-06

最新評論