返回顶部
首页 > 资讯 > 数据库 >mysql 实现设置多个主键的操作
  • 249
分享到

mysql 实现设置多个主键的操作

mysql设置多主键 2022-05-13 18:05:56 249人浏览 独家记忆
摘要

user表,身份证号码要唯一,手机号码,邮箱要唯一 实现方式: 表结构不用动。一个主键Id 加索引实现 如图类型设置索引类型为Unique 唯一 选择栏位,命个名就行。索引方式btree 就好。ok啦~ 补充:my

user表,身份证号码要唯一,手机号码,邮箱要唯一

实现方式:

表结构不用动。一个主键Id 加索引实现

如图类型设置索引类型为Unique 唯一 选择栏位,命个名就行。索引方式btree 就好。ok啦~

补充:mysql实现多表主键不重复

同一个数据库中有两张表,里面字段都是一样,只是因为存的数据要区分开。但是主键不能重复。具体实现如下:

新建数据库 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');

创建currval函数,用于获取序列当前值:


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');

创建nextval函数,用于获取序列下一个值:


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');

具体实现:


<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>

最终实现:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自学编程网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文档:

--结束END--

本文标题: mysql 实现设置多个主键的操作

本文链接: https://lsjlt.com/news/10165.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql 实现设置多个主键的操作
    user表,身份证号码要唯一,手机号码,邮箱要唯一 实现方式: 表结构不用动。一个主键Id 加索引实现 如图类型设置索引类型为Unique 唯一 选择栏位,命个名就行。索引方式btree 就好。ok啦~ 补充:my...
    99+
    2022-05-13
    mysql 设置多主键
  • sql怎么设置多个主键
    在SQL中,一个表只能有一个主键。然而,你可以通过使用外键来创建一个复合主键。复合主键是由多个列组成的主键。 以下是在SQL中设置多...
    99+
    2023-10-23
    sql
  • mysql设置主键的作用是什么
    这篇文章给大家分享的是有关mysql设置主键的作用是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql设置主键的作用是:1、唯一地标识表中的每一行,通过它可强制表的实体...
    99+
    2024-04-02
  • mysql中如何设置两个主键
    在 mysql 中设置两个主键的方法有两种:复合主键:alter table table_name add primary key (column1, column2);多列主键:alt...
    99+
    2024-04-29
    mysql
  • sqlserver设置主键的实现步骤
    目录开始之前限制和局限设置主键并置为非空更改已经建好的表中主键列的字符类型开始之前 限制和局限 一个表只能包含一个 PRIMARY KEY 约束。在 PRIMARY KEY 约束中定义的所有列都必须定义为 NO...
    99+
    2023-10-19
    sqlserver设置主键 sqlserver 主键
  • MySQL外键关联操作的实现
    目录mysql 的外键约束修改原有表的外键约束删除外键约束MySQL 的外键约束 注意,MySQL 的 InnoDB 表引擎才支持外键关联,MyISAM 不支持。MySQL 还支持手动打开或关闭外键约束:SET FORE...
    99+
    2022-07-28
    MySQL外键关联 MySQL关联外键
  • Mysql实现主从配置和多主多从配置
    我们现在模拟的是主从(1台主机、一台从机),其主从同步的原理,就是对bin-log二进制文件的同步,将这个文件的内容从主机同步到从机。 一、配置文件的修改 1、主机配置文件修改配置 我们首先需要mysql主机(1...
    99+
    2022-05-30
    Mysql 主从配置 Mysql 多主多从配置
  • Redis操作多个数据库的配置的方法实现
    目录前言一、添加pom 依赖二、多数据源的配置和添加到spring容器中三、使用方式结语:前言 redis 默认有 0-16 号数据库,一般我们操作redis时,用的是 0号数据库,...
    99+
    2024-04-02
  • spring jpa设置多个主键遇到的小坑及解决
    目录jpa设置多个主键遇到的坑解决办法jpa遇到多主键表如何进行查询1、使用 List<Map<String, Object>>的方式去接收2、自定义接收类3...
    99+
    2024-04-02
  • Mysql 增加主键或者修改主键的sql语句操作
    添加表字段 alter table table1 add transactor varchar(10) not Null; alter table table1 add id int unsigned ...
    99+
    2022-05-26
    Mysql 增加主键 修改主键 sql语句
  • mysql主键约束的设置方法
    这篇文章主要介绍了mysql主键约束的设置方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明在定义完列之后直接使用 UNIQUE关键字指定唯一约束。UNIQUE 和 ...
    99+
    2023-06-15
  • Mysql如何实现主从配置和多主多从配置
    这篇文章主要介绍了Mysql如何实现主从配置和多主多从配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们现在模拟的是主从(1台主机、一台从机),其主从同步的原理,就是对b...
    99+
    2023-06-15
  • MySQL多表操作的外键约束教程
    目录一.多表关系一对一关系一对多/多对一关系多对多关系二.外键约束特点创建外键约束方式1-在创建表时设置外键约束方式2-在创建表时设置外键约束在外键约束下的操作1.数据插入2.删除数据3.删除外键约束外键约束-多对多关系...
    99+
    2023-01-30
    mysql外键约束 mysql 多表操作
  • mysql建表时设置主键的方法
    mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!设置方法:在“CREATE TABLE”语句中...
    99+
    2024-04-02
  • MySQL设置主键的步骤是什么
    在MySQL中,设置主键的步骤如下: 创建表时,在定义表结构时指定哪个列作为主键,可以在列定义时直接指定主键,也可以在定义表的时候...
    99+
    2024-03-05
    MySQL
  • MySQL 搭建主从同步实现操作
    目录一、MySQL 8.0 主从同步二、MySQL主从搭建2.1 Master 上的操作2.2 Slave 上的操作一、MySQL 8.0 主从同步 主从同步的流程(原理): mas...
    99+
    2024-04-02
  • Mysql 设置boolean类型的操作
    Mysql 设置boolean类型 1.tinyint类型 我们创建test表,并设置其bl字段为boolean类型 create table test( id int PRIMARY key, status...
    99+
    2022-05-23
    Mysql 设置boolean类型
  • MySQL主键索引和非主键索引的实现
    目录主键索引(Primary Key Index):非主键索引(Secondary Index):在mysql中,主键索引和非主键索引有不同的作用和特点: 主键索引(Primary Key Index): 主键索引是一种...
    99+
    2023-10-27
    MySQL 主键索引 MySQL 非主键索引
  • SpringDataJpa多表操作的实现
    目录Jpa表关系分析步骤 关联关系的注解 @JoinColumn定义外键关联的字段名称 @OneToOne一对一关联关系 @OrderBy关联查询的时候的排序 @JoinTable关...
    99+
    2024-04-02
  • mysql双主键设置的方法是什么
    在MySQL中设置双主键(也称为联合主键)的方法是在创建表时将两个或多个字段设置为主键。例如: CREATE TABLE examp...
    99+
    2024-02-29
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作