濮阳杆衣贸易有限公司

主頁 > 知識庫 > mysql 實現(xiàn)設置多個主鍵的操作

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

熱門標簽:武漢網(wǎng)絡外呼系統(tǒng)服務商 地圖標注費用是多少 怎樣在地圖標注銷售區(qū)域 曲靖移動外呼系統(tǒng)公司 電話外呼系統(tǒng)改號 啥是企業(yè)400電話辦理 外呼系統(tǒng)打電話上限是多少 百應電話機器人優(yōu)勢 南昌三維地圖標注

user表,身份證號碼要唯一,手機號碼,郵箱要唯一

實現(xiàn)方式:

表結構不用動。一個主鍵Id 加索引實現(xiàn)

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

補充:mysql實現(xiàn)多表主鍵不重復

同一個數(shù)據(jù)庫中有兩張表,里面字段都是一樣,只是因為存的數(shù)據(jù)要區(qū)分開。但是主鍵不能重復。具體實現(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;

新增一個序列:

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

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

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;

查詢當前值:

select currval('seq_test');

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

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;

查詢下一個值

select nextval('seq_test');

具體實現(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>

最終實現(xiàn):

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

您可能感興趣的文章:
  • MySQL中的主鍵以及設置其自增的用法教程
  • 深入Mysql,SqlServer,Oracle主鍵自動增長的設置詳解
  • mysql下創(chuàng)建字段并設置主鍵的php代碼

標簽:滄州 吉林 資陽 甘南 錦州 隨州 荊州 黑河

巨人網(wǎng)絡通訊聲明:本文標題《mysql 實現(xiàn)設置多個主鍵的操作》,本文關鍵詞  mysql,實現(xiàn),設置,多個,主鍵,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql 實現(xiàn)設置多個主鍵的操作》相關的同類信息!
  • 本頁收集關于mysql 實現(xiàn)設置多個主鍵的操作的相關信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章
    绍兴市| 娄烦县| 台南县| 南昌市| 兰州市| 和田市| 同仁县| 甘德县| 雅安市| 年辖:市辖区| 盘山县| 阿克陶县| 沅江市| 南京市| 任丘市| 和平县| 教育| 蚌埠市| 桂阳县| 雷波县| 巫溪县| 治多县| 天柱县| 河西区| 大城县| 于都县| 五常市| 右玉县| 杂多县| 临沧市| 绥江县| 禹州市| 上犹县| 崇文区| 隆昌县| 绍兴市| 家居| 寿宁县| 广宁县| 临湘市| 沙田区|