精华内容
下载资源
问答
  • mysql创建表主键自增顺序

    千次阅读 2020-03-02 18:32:09
    CREATE TABLE user_t ( id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, user_name varchar(40) NOT NULL, password varchar(255) NOT NULL, age int(4) NOT NULL, ...4.是否是主键 5.是否自增

    CREATE TABLE user_t (
    id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    user_name varchar(40) NOT NULL,
    password varchar(255) NOT NULL,
    age int(4) NOT NULL,
    PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
    1.字段
    2.类型
    3.是否可以为空
    4.是否是主键
    5.是否自增

    展开全文
  • 联合主键自增问题今天上午闲来无事翻看了下数据库分类的设计,看到这样一幕:当时我好奇的是怎么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循环里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真 ...

    展开全文
  • 此时我们在数据库joiner中建立名为data的: //引入数据库 use joiner; //创建表data create table data( id int, name varchar(20), age int, major varchar(20), score int, //将id设为主键 primary key...

    此时我们在数据库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索引。
    展开全文
  • 最近几天才开始使用sqlServer 以为跟mysql主键自增一样 !大错特错啊~~~ 我在使用Navicat客户端连接sqlserver 创建完成的主键如下图: 有标识才是 自增长主键。并且在使用navicat 创建表时,只能在创建时勾选。 ...

    最近几天才开始使用sqlServer 以为跟mysql主键自增一样 !大错特错啊~~~
    我在使用Navicat客户端连接sqlserver 创建完成的表主键如下图:
    这里写图片描述

    有标识才是 自增长主键。并且在使用navicat 创建表时,只能在创建时勾选。
    创建完成不能修改 是否为标识

    如果不加标识就是如下图: 空空如也
    这里写图片描述

    那么使用没有标识的自增长会出现如下错误(坑了我一小时 小伙帮们要小心啊)
    这里写图片描述

    展开全文
  • Mysql varchar型主键自增方法

    千次阅读 2020-03-20 18:02:27
    为了测试,中仅添加了两列,分别是主键id 和 name列,两列都为varchar类型。 备注:id内容格式为 BHXXXX,如:BH0001 ...大致思路:在MySql中新建时,可以创建触发器为id进行自增。 详细思路: 1...
  • MYSQL添加主键自增

    2020-08-15 19:13:48
    mysql添加主键自增 --添加主键自增 alter table easybuy_news modify column id int auto_incremnt; --设置自增的起始值 alter table easybuy_news auto_increment=10000;
  • 我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的 8、mysqldump 用mysqldump将dump出来,改名字后再导回去或者直接在命令行中运行 9、复制旧数据库到新数据库(复制全部结构并且复制...
  • '创建时间' , PRIMARY KEY ( `seckill_id` ), KEY `idx_start_time` ( `start_time` ), KEY `idx_end_time` ( `end_time` ), KEY `idx_create_time` ( `create_time` ) ) ENGINE=InnoDB ...
  • mysql 设置主键自增语句 alter table 表名 modify id int auto_increment primary key 若提示 > 1068 - Multiple primary key defined 说明已经设置过主键了,去掉语句后面的 primary key即可。
  • mysql 创建表mysql> create table user( -> userid int(4) primary key not null auto_increment, -> username varchar(16) not null, -> userpassword varchar(32) not null -> );...
  • mysql创建表并设置主键自增(记录下)

    千次阅读 2020-06-03 14:59:27
    create table t_startAlarm( code int(100) primary key not null auto_increment,//主键自增 devId varchar(100), uuid varchar(100), name varchar(100), addr varchar(100), text varchar(100), type varchar(100...
  • 如果使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如下图所示: --- !...
  • tf_user 的主键自增起始值为 2 truncate table `tf_user`; alter table tf_user AUTO_INCREMENT=2; 已有数据,delete from 之后再设置 auto_increment,可行 delete from `tf_user`; alter table tf_user ...
  • PostgreSQL创建表并设置主键自增

    千次阅读 2020-01-03 09:53:13
    MySQL 设置主键自增策略比较简单 只需要创建表的时候使用关键字AUTO_INCREMENT就可以完成主键自增。但是pg数据库不同于mysql,之前试了 SERIAL 结果并不管用。 这里只记录给已创建加入主键自增(适用性广些) 说道...
  • ALTER TABLE ‘tableName’ DROP PRIMARY KEY --删除主键 ALTER TABLE ‘tableName’ ADD PRIMARY KEY(id...ALTER TABLE ‘tableName’ ADD ‘id’ INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT --创建自增主键 ...
  • 只针对Innodb引擎,myisam没有这个问题 建立测试数据库 create database test1 ...创建数据 test1_table create table test1_table (id int(4) primary key not null auto_increment) default charset=utf8 e...
  • MySQL 设置主键自增策略比较简单 只需要创建表的时候使用关键字AUTO_INCREMENT就可以完成主键自增。但是pg数据库不同于mysql,之前试了 SERIAL 结果并不管用。 这里只记录给已创建加入主键自增(适用性广些) 说道...
  • Mysql数据库自增主键ID号乱了,需要重新排列。原理:删除原有的自增ID,重新建立新的自增ID。1,删除原有主键:ALTER TABLE `table_name` DROP `id`;2,添加新主键字段:ALTER TABLE `table_name` ADD `id` ...
  • postgresql-创建主键自增 之前一直用的mysql,这个也基本上是主流,主键自增是很多建表规范中的硬性要求,不过这两种数据库主键自增的区别还是很大的 通常navicat中对mysql主键自增直接客户端指定即可,不过对...
  • mysql数据库自增主键ID乱了,需要重新排序。 原理:删除原有的自增ID,重新建立新的自增ID。 1、删除原有主键: ALTER TABLE `table_name` DROP `id`; 2、添加新主键字段: ALTER TABLE `table_...
  • Mysql数据库自增主键ID号乱了,需要重新排列。原理:删除原有的自增ID,重新建立新的自增ID。1,删除原有主键:ALTER TABLE `table_name` DROP `id`;2,添加新主键字段:ALTER TABLE `table_name` ADD `id` INT...
  • MyBatis进行插入操作时,如果的主键是自增的,针对不同的数据库相应的操作也不同。...1、MySQL主键自增设置 方法一: <insert id="insert" parameterType="Person" useGeneratedKeys="true" key...
  • 为了便于说明,我们创建一个t,其中id是自增主键字段、c是唯一索引。 CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), ...
  • Mysql自增主键 自增主键如何创建 CREATE TABLE `blog`.`Idv_Inf_Tbl` ( `Idv_Inf_No` INT(11) NOT NULL AUTO_INCREMENT, `Acct_No` VARCHAR(45) NOT NULL, `nickname`VARCHAR(45) NOT NULL, PRIMARY KEY (`Idv_...
  • 关于mysql的int型主键自增问题

    千次阅读 2020-08-19 09:14:24
    我们在使用mysql数据库时,习惯使用int型作为主键,并设置为自增,这既能够保证唯一,使用起来又很方便,但int型的长度是有限的,如果超过长度怎么办呢? 暴露问题 我们先创建一个测试创建语句如下: CREATE ...
  • oracle新建主键自增 我电脑装的是Oracle数据库,而在看教学视频时,好多用的是mysql数据库。 此时出现了一个问题: 用mysql新建时 直接给字段定义auto_increment就可以实现字段值自增。 而Oracle没有这个功能...
  • Mysql数据库自增主键ID号乱了,需要重新排列。原理:删除原有的自增ID,重新建立新的自增ID。1,删除原有主键:ALTER TABLE `table_name` DROP `id`;2,添加新主键字段:ALTER TABLE `table_name` ADD `id` ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,321
精华内容 20,128
关键字:

mysql创建表主键自增

mysql 订阅