精华内容
下载资源
问答
  • 主键约束以及自增主键约束约束_主键自增约束 主键约束 -- 创建学生表(编号、姓名、年龄) 编号设主键 CREATE TABLE student( ​ id INT PRIMARY KEY, ​ NAME VARCHAR(30), ​ age INT ); -- 查询学生表的...

    主键约束以及自增

    主键约束

    -- 创建学生表(编号、姓名、年龄)  编号设为主键
    
    CREATE TABLE student(
    
    ​	id INT PRIMARY KEY,
    
    ​	NAME VARCHAR(30),
    
    ​	age INT
    
    );
    
    -- 查询学生表的详细信息
    
    DESC student;
    
    -- 添加数据
    
    INSERT INTO student VALUES (1,'张三',23);
    
    INSERT INTO student VALUES (2,'李四',24);
    
    -- 删除主键
    
    ALTER TABLE student DROP PRIMARY KEY;
    
    -- 建表后单独添加主键约束
    
    ALTER TABLE student MODIFY id INT PRIMARY KEY;
    

    约束_主键自增约束

    -- 创建学生表(编号、姓名、年龄)  编号设为主键自增
    
    CREATE TABLE student(
    
    ​	id INT PRIMARY KEY AUTO_INCREMENT,
    
    ​	NAME VARCHAR(30),
    
    ​	age INT
    
    );
    
    -- 查询学生表的详细信息
    
    DESC student;
    
    -- 添加数据
    
    INSERT INTO student VALUES (NULL,'张三',23),(NULL,'李四',24);
    
    -- 删除自增约束
    
    ALTER TABLE student MODIFY id INT;
    
    INSERT INTO student VALUES (NULL,'张三',23);
    
    -- 建表后单独添加自增约束
    
    ALTER TABLE student MODIFY id INT AUTO_INCREMENT;
    
    展开全文
  • mysql自增主键和mybatis自增主键不一致问题(已解决): 在插入数据前,先进行查询主键 <insert id="insertSelective"> <selectKey keyProperty="zxywzj" resultType="Integer"> select LAST_INSERT_ID...

    mysql自增主键和mybatis自增主键不一致问题(已解决):

    在插入数据前,先进行查询主键

    <insert id="insertSelective">
        <selectKey keyProperty="zxywzj" resultType="Integer">
            select LAST_INSERT_ID()
        </selectKey>
        insert into tb_name
            (<include refid="if_insert_column"/>)
        values
            (<include refid="if_insert_value"/>)
    </insert>
    
    //关键性代码  keyProperty="id" 为你的表主键
    <selectKey keyProperty="id" resultType="Integer">
                select LAST_INSERT_ID()
     </selectKey>
    
    展开全文
  • mysql 插入数据并返回自增主键和非自增主键的方式 MyBatis的insert操作,如何在插入数据的同时返回主键呢?分为两种情况,一种情况是该主键自增主键,另一种情况是该主键自增,接下来对两种情况详细解释。 mysql...

    MyBatis中mysql 插入数据并返回自增主键和非自增主键的方式

    MyBatis的insert操作,如何在插入数据的同时返回主键呢?分为两种情况,一种情况是该主键是自增主键,另一种情况是该主键非自增,接下来对两种情况详细解释。

    mysql支持自增主键,而Oracle不支持自增主键,在JDBC中可以使用getGeneratedKeys()方法获得自增主键。

    获取自增主键的值
    • CompetitionMapper.java中的接口
    int createCompetition(Competition competition);
    
    • CompetitionMapper.xml中的xml写法
    <insert id="createCompetition" useGeneratedKeys="true" parameterType="com.ebusiness.reviewer.model.Competition" keyProperty="id">
      insert into 
      	competition  
      		(id,c_name,start_time,end_time,create_time)
      values 
      	(default ,#{cname},#{startTime},#{endTime},NOW()})
    </insert>
    

    以上使用useGeneratedKeys="true"表示使用自增主键获取策略,keyProperty指定对应的主键属性,也就是MyBatis获取到主键以后,将这个值封装给javaBean的哪个属性。

    • CompetitionService.java中调用CompetitionMapper.java中createCompetition方法以及接收自增主键的写法。
    //competitionMapper是注入到容器中的CompetitionMapper对象,competition是传入的对象
    competitionMapper.createCompetition(competition);
    //id 就是自增主键
    int id = competition.getId();
    
    获取非自增主键的方法
     <insert id="createCompetition" parameterType="com.ebusiness.reviewer.model.Competition">
    	<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
    		SELECT uuid()
    	</selectKey>
    	insert into 
    		competition  
    			(id,c_name,start_time,end_time,create_time)
    	values 
    		(#{id},#{cname},#{startTime},#{endTime},NOW())
    </insert>
    

    keyProperty:将查询出的主键设置到parameterType中的哪个属性上
    order:相对于sql语句的执行顺序,BEFORE代表是在插入之前查询主键
    resultType:指定返回值类型

    • selectKey标签中查询非自增主键的值,然后赋值给insert中要插入的主键的值。

    • 数据库debug模式打印日志
      在这里插入图片描述

    • 调用完方法接收非递增主键
      在这里插入图片描述

    • 控制台打印日志
      在这里插入图片描述

    展开全文
  • MySQL主键设置自增

    万次阅读 2017-05-24 15:38:39
    MySQL 每张表只能有1个自动增长字段,这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意自动增长字段当做非主键使用时必须必须其添加唯一索引,否则系统会报错。例如: – 自动增长字段设置...

    1设置为唯一索引
    MySQL 每张表只能有1个自动增长字段,这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意将自动增长字段当做非主键使用时必须必须为其添加唯一索引,否则系统将会报错。例如:
    – 将自动增长字段设置为主键
    create table t1 (id int auto_increment Primary key,sid int);
    – 将自动增长字段设置为非主键,注意必须显式添加Unique键
    create table t2 (sid int primary key,id int auto_increment Unique);
    将自动增长字段设置为非主键如果未添加唯一索引将会报错,如下面语句
    create table t3 (sid int primary key,id int auto_increment);

    2程序中实现逻辑递增
    (1)查询需要递增的字段

      <select id="getSequence" resultType="java.lang.Integer">
        select
        code
        from cfg_web_site
        order by id desc limit 1
      </select>
    

    (2)如果为空就设置初始值,否则+1

    public int getSequence() {
            int sequence = baseMapper.getSequence();
            if (sequence == 0) {
                return 1;
            } else {
                return sequence + 1;
            }
    
        }
    
    展开全文
  • MySQL主键设置自增

    2021-04-19 14:13:14
    有个需求:需要给数据列表添加一个序号(序号1、2、3....),需要自增 alter table table_name add num(序号) int auto_increment not null Unique; 需加unique才能设置自增成功,否则会报错 Incorrect table ...
  • MySQL删除主键和添加自增主键

    千次阅读 2012-08-02 09:30:28
    删除主键mysql> alter table student drop primary key; 添加自增主键mysql> alter table student add id int not null auto_increment, add primary key (id);
  • MySQL 每张表只能有1个自动增长字段,这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意自动增长字段当做非主键使用时必须必须其添加唯一索引,否则系统会报错。例如: – 自动增长字段设置...
  • Mybatis获取mysql自增主键的获取 User.xml <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- keyProperty:查询出的主键设置到para
  • Navicat中设置主键自增和自增初始值

    万次阅读 2018-03-31 14:50:14
    1、设置主键自增2、设置主键自增初始值
  • mysql设置主键自增

    千次阅读 2020-09-29 09:51:36
    archives_sale_info 设置主键自增 系统环境 ALTER TABLE `archives_sale_info` MODIFY COLUMN `id` bigint(8) NOT NULL AUTO_INCREMENT FIRST; ALTER TABLE `archives_user` MODIFY COLUMN `id` bigint(8) NOT ...
  • mysql主键设置自增字段

    千次阅读 2017-11-14 11:27:56
    在数据库建表的时候,设置自增字段,一般提示该列必须为主键,才能设置自增字段,但是,并非主键才可以设置的。 create table a( id int (11) auto_increment not null, name varchar(20), key(id) ) ...
  • mysql 设置主键自增语句 alter table 表名 modify id int auto_increment primary key 若提示 > 1068 - Multiple primary key defined 说明已经设置过主键了,去掉语句后面的 primary key即可。
  • mysql 主键修改为自增

    2020-03-16 16:15:30
    set foreign_key_checks = 0; alter table user change id id int auto_increment; set foreign_key_checks = 1;
  • MySQL将主键id改为自增

    万次阅读 2019-01-07 14:28:23
    alter table 表名 change id id int AUTO_INCREMENT 注:id必须为主键时才可以这样使用
  • Mysql设置主键自增时遇到的坑~

    千次阅读 2019-09-16 20:41:09
    今天在写一个javaweb的Demo时遇到一个数据库问题:mysql设置主键自增时报错1833,原因是此主键是另一个表的外键,而外键是不可以设置自增的,所以想要设置自增,必须先外键删除。 也就是说,**MySQL要先设置主键...
  • Mysql主键UUID和自增主键区别优劣

    万次阅读 2018-09-04 09:31:24
    最近用mysql,发现mysql主键都是选择自增主键,仔细比较一下,什么mysql选择自增主键,有什么不同。 在mysql5.0之前,如果是多个master复制的环境,无法用自增主键,因为可能重复。在5.0以及之后的版本通过配置...
  • MySQL自增主键详解

    万次阅读 多人点赞 2019-06-02 10:02:16
    2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化。每次重启后,第一次打开表的时候,都会去找自增值的最大值max(id),然后max(id)+步长作为这个表当前的自增值 select max(ai_...
  • CREATE TABLE `stu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(32) NOT NULL DEFAULT '无', `grade` double NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ...如果忘记给主键设置自增,可以修改字段.
  • mysql修改主键为自增使用记录 做个简单记录,方便使用 每天进步一点点,不知不觉,你拥有的会超乎你的想象,与大家共勉!
  • MySQL自增主键VS非自增主键

    千次阅读 2020-05-29 09:22:36
    由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置,此时MySQL不得不为了新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上...
  • 用的mysql数据库,设置主键自增 ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT 贴图 问题: 然后在java中使用example的insertSelective(XXX xxx)方法报Duplicate entry '...
  • 最近用mysql,发现mysql主键都是选择自增主键,仔细比较一下,什么mysql选择自增主键,有什么不同。 在mysql5.0之前,如果是多个master复制的环境,无法用自增主键,因为可能重复。在5.0以及之后的版本通过配置...
  • Navicat Navicat中怎么设置主键自增长?
  • mysql自增主键设置

    2020-12-29 15:20:34
    mysql自增主键设置 在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值。可以通过主键添加AUTO_INCREMENT关键字来实现。 默认情况下,在MYSQL中AUTO_INCREMENT的初始值是1,每新增一条记录...
  • 原先的user表的主键u_id没有设置为自增 现修改为自增 mysq'语句: alter table user modify u_id int(3) not null auto_increment;
  • ALTER TABLE exam_participant AUTO_INCREMENT = 1 ; exam_participant 表名
  • 主要介绍了MySQL中的主键以及设置自增的用法教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,336
精华内容 26,934
关键字:

mysql将主键设置为自增

mysql 订阅