精华内容
下载资源
问答
  • mybatis+mysql表主键自增, 插入数据,怎么返回主键。很多人说的都是返回了插入的行数
  • mysql 修改列为主键 自增

    千次阅读 2019-06-27 10:38:56
    altertabletb_namemodifyidintauto_incrementprimarykey
    alter table tb_name modify id int auto_increment primary key
    展开全文
  • 联合主键自增问题今天上午闲来无事翻看了下数据库分类的设计,看到这样一幕:当时我好奇的是怎么cateId自增会存在重复值的问题,然后翻看了下主键是由siteId和cateId组成。所以进行了查阅资料:当多列组成联合...

    前言

    一. 联合主键自增问题

    今天上午闲来无事翻看了下数据库分类表的设计,看到这样一幕:

    3330a07b5f0e4fdcc51b27008142647b.png

    4920e5588d0fb9941d6e7a854fbbb937.png

    当时我好奇的是怎么cateId自增会存在重复值的问题,然后翻看了下主键是由siteId和cateId组成。所以进行了查阅资料:

    当多列组成联合主键时、auto_increment属性的列并不是自顾自得一味的增长,而是配合其他主键的列 从而得到唯一约束;如上图2所示  当siteId值不同时cateId会重归1开始自增

    but这里有几个坑需要注意下,为了显眼我特地设置为红色:

    1:存储引擎必须为MyISAM

    2:自增主键必须为第二列

    下面再总结一个小知识点

    英文字母和中文汉字在不同的字符集编码下所占的字节数

    英文字母:

    字节数 : 1;编码:GB2312

    字节数 : 1;编码:GBK

    字节数 : 1;编码:GB18030

    字节数 : 1;编码:ISO-8859-1

    字节数 : 1;编码:UTF-8

    字节数 : 4;编码:UTF-16

    字节数 : 2;编码:UTF-16BE

    字节数 : 2;编码:UTF-16LE

    中文汉字:

    字节数 : 2;编码:GB2312

    字节数 : 2;编码:GBK

    字节数 : 2;编码:GB18030

    字节数 : 1;编码:ISO-8859-1

    字节数 : 3;编码:UTF-8

    字节数 : 4;编码:UTF-16

    字节数 : 2;编码:UTF-16BE

    字节数 : 2;编码:UTF-16LE

    1个字节byte=8bit(比特/位)  1bit=0.125B字节

    1个汉字两个字节 16bit,2B.

    字符:汉字,数字,字母等

    Byte,bit是存储单位

    Bit——比特

    B ——字节 byte

    KB——千字节

    MB——兆字节

    GB——吉字节

    TB——太字节

    1B=8 Bit

    1KB=1024B

    1MB=1024KB

    1GB=1024MB

    1TB=1024GB

    mysql数据库表的自增主键号不规律,重新排列

    mysql数据库表的自增主键ID乱了,需要重新排序. 原理:删除原有的自增ID,重新建立新的自增ID. 1.删除原有主键: ALTER TABLE `table_name` DROP `id`; 2. ...

    Mysql数据库表的自增主键ID号乱了,需要重新排列。

    Mysql数据库表的自增主键ID号乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键:ALTER TABLE `table_name` DROP `id`; 2, ...

    mysql数据库插入数据获取自增主键的三种方式(jdbc PreparedStatement方式、mybatis useGeneratedKeys方式、mybatis selectKey方式)

    通常来说对于mysql数据库插入数据获取主键的方法是采用selectKey的方式,特别是当你持久层使用mybatis框架的时候. 本文除此之外介绍其它两种获取主键的方式. 为了方便描述我们先建一张my ...

    Mybatis+Mysql插入数据库返回自增主键id值的三种方法

    一.场景: 插入数据库的值需要立即得到返回的主键id进行下一步程序操作 二.解决方法: 第一种:使用通用mapper的插入方法 Mapper.insertSelective(record): 此方法: ...

    mybatis获取插入的语句主键(自增主键)

    Mysql对自增主键ID进行重新排序

    Mysql数据库表的自增主键ID号经过一段时间的添加与删除之后乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键: ALTER TABLE `table_name ...

    Mysql自增主键ID重新排序方法详解

    Mysql数据库表的自增主键ID号乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2 ...

    Mysql 修改字段长度、修改列名、新增列、修改自增主键起始值

    alter table 表名 modify column 字段名 类型; 例如 数据库中user表 name字段是varchar(30) 可以用 ) ; --修改字段长度 )--修改表列名 ); -- ...

    MySQL导入csv文件内容到Table及数据库的自增主键设置

    写在前面 目的是测试将csv文件内容导入到表中, 同时记录一下自增主键的设置. 测试采用MySQL8.0. 新建表customer_info如下, 未设置主键. 修改上表, 添加主键id, 并设置为自 ...

    Oracle设置主键自增

    oracle没有mysql那样可以有自增主键,需要自己通过创建序列才能实现自增 /*创建自增序列*/ CREATE SEQUENCE CMB_CHINA_CITYS_ID MINVALUE --最小值 ...

    随机推荐

    UIImageView变灰

    1.UIImageView圆角 CALayer *l = [cell.imgAvatarImage layer]; [l setMasksToBounds:YES]; [l setCornerRadi ...

    制作nginx和php的rpm包

    rpm包的制作真几把烦,制作php的rpm花了我3天时间,因为是根据线上环境来做的,依赖的第三方库太多,本来想把所有的第三方库做进php包,后来发现在rpmbuild -bb的时候非常耗时,而且乱七八 ...

    爬虫-html

    Uri myUri =new Uri(@sURL); WebRequest wrq = WebRequest.Create(myUri); WebResponse wrs = wrq.GetRespo ...

    编写isNull isArray isFunction的方法

    1.isNull 判断null,需要排除掉undefined和0.''(空串). function isNull(arr){ return !arr&&typeof arr!=='un ...

    【C语言天天练(二四)】内存分配

    引言: 对于C语言程序,了解它执行时在内存中是怎样分配的对于我们理解它的执行机制是很实用的.以下就总结一下C语言程序的一些内存分配知识. 一 一段C程序.编译连接后形成的可运行文件一般有代码段.数据段 ...

    【RabbitMQ+Python入门经典】兔子和兔子窝 笔记

    RabbitMQ工业级的消息队列服务器. 兔子和兔子窝 动机来源:从生产环境的电子邮件处理流程当中分支出一个特定的离线分析流程. 解决方案1: 开始使用MySQL处理,将要处理的东西放在表里面,另一个 ...

    debian9 开启rc.local服务

    由于某些软件并没有增加开启启动的服务,很多时候需要手工添加,一般我们都是推荐添加命令到 /etc/rc.local 文件,但是 Debian 9 默认不带 /etc/rc.local 文件,而 rc. ...

    向指定URL发送GET、POST方法的请求

    /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name ...

    python之Bottle框架

    一.简单的Bottle框架 1)bottle框架简介 安装 pip install bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架. 此框架只由一个 .py 文件,除 ...

    java学习第04天(语句、函数、数组)

    (3)循环结构 格式: for(初始化表达式,循环条件表达式,循环后的操作变大时){ 执行语句,循环体: } 注: a. for循环里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真 ...

    展开全文
  • 设置T_USER主键从1000开始自增 ALTER TABLE T_USERAUTO_INCREMENT=1000; 注意点: 1、如果语句提示执行成功了,但是自增初始值却没有变,可能是因为中已存在的主键值大于你设置的值 比如你中有一个主键...

    设置表T_USER主键从1000开始自增

    ALTER TABLE T_USER AUTO_INCREMENT=1000;

     注意点:

    1、如果语句提示执行成功了,但是自增初始值却没有变,可能是因为表中已存在的主键值大于你设置的值

    比如你表中有一个主键的值为1010,那么你设置初始值为1000时,虽然执行成功,但会依旧会从1010开始自增

    展开全文
  • 此时我们在数据库joiner中建立名为data的: //引入数据库 use joiner; //创建data create table data( id int, name varchar(20), ...则查看时可得到以下结果(此时可看到id被设为了主键): 此时

    此时我们在数据库joiner中建立名为data的表:

    //引入数据库
    use joiner;
    //创建表data
    create table data(
    	id int,
    	name varchar(20),
        age int,
        major varchar(20),
        score int,
        //将id设为主键
        primary key(id)	//或是直接在id int 后直接写primary key;
    );
    

    则查看表时可得到以下结果(此时可看到id被设为了主键):
    在这里插入图片描述
    此时我们向表中插入两条数据,如下图所示:
    在这里插入图片描述
    接着我们向表中插入如下数据:

    //注意词条数据id=1,与第一条数据冲突
    insert into data (id,name,age,major,score) values(1,'Jack',19,'computer',96);
    

    即可得到如下报错:ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘PRIMARY’
    但是如果我们起先不设置primary key,数据是可以正常插入,不会报错的。
    因此什么是主键呢?

    一、主键的概念

    表中的每一行都应该具有可以唯一标识自己的一列(或一组列),而这个承担标识作用的列称为主键。因此如果没有主键,数据的管理将会十分混乱。例如上述的表data中会存在多个id=1的数据,修改起来就会很麻烦。

    二、主键设计原则

    • 任何两行都不具有相同的主键值。
    • 每个行都必须具有一个主键值(主键列不允许NULL值)。
    • 不更新主键列的值。
    • 不重用主键列的值。

    三、主键的声明方式

    • 在某一字段后创建主键
    create table data(
    	id int primary key,
    	name varchar(20)
    );
    
    • 在所有字段后创建主键
    create table data(
    	id int,
    	name varchar(20),
    	//可添加复合主键
    	primary key(id,name)
    );
    
    • 创建表后再追加主键
    create table data(
    	id int,
    	name varchar(20)
    );
    alter table data add primary key(id);
    

    四、小番外:主键自增

    create table data(
    	id int primary key auto_increment,
    	name varchar(20)
    );
    //或是忽略上auto_increment,只添加以下语句
    alter table data modify id int auto_incremnet;
    

    此时当向表data插入一条完整的数据,其后再插入的数据可省略id,即id可自己按照顺序生成。
    此外,有关主键及自增的关系:

    • 主键不一定要自增;
    • 但自增一定需要主键或是加入unique索引。
    展开全文
  • mysql修改主键id自增

    2020-12-03 10:32:19
    mysql修改主键id自增 alter table 你的表名 change id id int AUTO_INCREMENT;
  • 我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的 8、mysqldump 用mysqldump将dump出来,改名字后再导回去或者直接在命令行中运行 9、复制旧数据库到新数据库(复制全部结构并且复制...
  • mysql修改主键自增语句

    千次阅读 2014-04-07 20:25:32
    mysql修改主键自增语句  2010-12-23 14:45:42| 分类: MySQL技术专栏 | 标签:mysql 自动增加 主键 |举报|字号 订阅 alter table tablename change tableprimary tableprimary ...
  • 取消MySQL数据库自增 alter table tableName modify id int(11) unsigned not null comment '主键'; 增加主键字段自动递增 alter table tableName modify id bigint auto_increment comment '产品类型...
  • mysql修改主键自增使用记录 做个简单记录,方便使用 每天进步一点点,不知不觉,你拥有的会超乎你的想象,与大家共勉!
  • mysql 主键自增

    2021-09-06 16:29:35
    当前主键自增到33了。但下一条数据想让它主键为50,跳过中间的差值。我想当然的认为只要将当前的主键33改为50,那么它的最大主键就是50,之后插入数据就会接着50继续自增。但实际上新插入的数据仍然是接着33开始自增...
  • mysql 修改主键自增,新增联合主键

    千次阅读 2017-03-26 14:10:37
    添加字段3 alter table tbname add 字段3 varchar(10); 删除主键 alter table tbname drop primary key; 添加主键 alter table tbname add primary key(字段1,2,3);
  • 例子: 表名:user 修改表主键自增从10000开始 alter table user AUTO_INCREMENT=10000;
  • ALTER TABLE `表名` AUTO_INCREMENT=某个数值; ALTER TABLE `表名` MODIFY 字段名 属性 AUTO_INCREMENT COMMENT 'XX';
  • 最近几天才开始使用sqlServer 以为跟mysql主键自增一样 !大错特错啊~~~ 我在使用Navicat客户端连接sqlserver 创建完成的主键如下图: 有标识才是 自增长主键。并且在使用navicat 创建时,只能在创建时勾选。 ...
  • 自增值修改机制 在MySQL里面,如果字段id被定义为AUTO_INCREMENT,在插入一行数据的时候,自增值的行为如下: 如果插入数据时id字段指定为0、null 或未指定值,那么就把这个当前的 AUTO_INCREMENT值填到自增字段...
  • mysql 设置主键自增语句

    万次阅读 2019-06-17 10:37:17
    alter table tableName modify id int auto_increment primary key
  • 关于mysql中设置表自增主键从指定序号开始自增mysql中我们经常会出现不小心删除一行数据然后再添加数据时自增主键没有从指定数字开始的问题,如图 解决方法 执行以下sql语句可以指定自增主键的起始序号 ...
  • 关于mysql的int型主键自增问题

    千次阅读 2020-08-19 09:14:24
    我们在使用mysql数据库时,习惯使用int型作为主键,并设置为自增,这既能够保证唯一,使用起来又很方便,但int型的长度是有限的,如果超过长度怎么办呢? 暴露问题 我们先创建一个测试,创建语句如下: CREATE ...
  • MyISam引擎:MyISAM会把自增列(auto-increment计数器)最大值是记录到数据文件里,重启MySQL自增列(计数器)最大值不会丢失,从而使用自增列作为主键ID时也不会丢失。 MySQL 一般使用 innodb 引擎,数据库重启
  • PostgreSQL创建并设置主键自增

    千次阅读 2020-01-03 09:53:13
    MySQL 设置主键自增策略比较简单 只需要创建的时候使用关键字AUTO_INCREMENT就可以完成主键自增。但是pg数据库不同于mysql,之前试了 SERIAL 结果并不管用。 这里只记录给已创建的加入主键自增(适用性广些) 说道...
  • Mysql数据库添加主键后,删除数据,数据依然排序显示 提示:平常操作数据库时,我们对主键是不需要进行这个操作的...问题原因:Mysql数据库的主键是支持自增的 ,此时我们不断向数据库中插入数据,主键的值便会不断的自
  • 1.MySQL主键自增返回 查询id的sql SELECT LAST_INSERT_ID() 通过修改User.xml映射文件,可以将mysql自增主键返回: 如下添加selectKey 标签 <!-- 保存用户 --> <insert id="save...
  • 问题描述:Mysql主键自增,加入当前主键是20,删掉该记录之后,在插入一条,主键是20还是21?不同的引擎对于自增值得保存策略不同。1、MySAM 引擎的自增主键保存在数据文件中2、InnoDB 引擎的自增值,其实就是保存在...
  • mysql修改自增主键初始值,简单易操作,数据库维护小技巧。
  • MySQL自增主键详解

    万次阅读 多人点赞 2019-06-02 10:02:16
    一、自增值保存在哪儿? 不同的引擎对于自增值的保存策略...每次重启后,第一次打开的时候,都会去找自增值的最大值max(id),然后将max(id)+步长作为这个当前的自增值 select max(ai_col) from table_name for ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,123
精华内容 17,249
关键字:

mysql修改表主键自增

mysql 订阅