亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

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

新建數(shù)據(jù)庫(kù) 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='用戶(hù)表'
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;

查詢(xún)當(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;

查詢(xún)下一個(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ù)無(wú)法啟動(dòng)且服務(wù)沒(méi)有報(bào)告任何錯(cuò)誤的解決辦法

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

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

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

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

    MySQL導(dǎo)入導(dǎo)出助手類(lèi)庫(kù)MysqlHelper安裝使用

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

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

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

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

    這篇文章主要介紹了MySQL 5.7.9 服務(wù)無(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ù)庫(kù),小編覺(jué)得挺不錯(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á)式,對(duì)數(shù)值或表達(dá)式進(jìn)行加(+)、減(-)、乘(*)、除(/)和取模(%)運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于SQL算術(shù)運(yùn)算符之加法、減法、乘法、除法和取模用法的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • MySQL常見(jiàn)內(nèi)置函數(shù)以及其使用教程

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

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

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

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

    21分鐘 MySQL 入門(mén)教程

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

最新評(píng)論