一、mysql如何让自增id归0

  • 当你不再需要该表时, drop
  • 当你仍要保留该表,但要删除所有记录时, truncate
  • 当你要删除部分记录时(always with a WHERE clause), delete.

方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

truncate table 表名

方法二: 许多时候希望table中数据的id不要从1开始,像qq, id从10000开始
代码如下:

alter table 表名 AUTO_INCREMENT=10000;
而且该语句也适用于修改现有表的id上, 比如大批量删除数据后,想id从654321退回123456开始

alter table 表名 AUTO_INCREMENT=123456;

但是经过实际测试, 单机的Mysql没有问题, Mysql Cluster下是无效的,可能在主键上的机制,还是有所不同。

二、mysql数据表增加列

  因为Drop Table会把数据也删除掉,要增加数据列的时候,最好用Alter语句。如:

alter table OrderSearchSummary add IsMonthly int(11) not NULL DEFAULT 0;

alter table OrderSearchSummary add DistributorFirstName varchar(50);

三、存在则更新,不存在则增加

  在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时则进行更新,

在刚碰到的时候,第一反应是将其实现分为两块,分别是判断增加,判断更新。

后来发现在mysql中有  ON DUPLICATE KEY UPDATE一步就可以完成。

该语句是基于唯一索引或主键使用,比如一个字段a被加上了unique index,并且表中已经存在了一条记录值为1:

下面两个语句会有相同的效果:

INSERT INTO table (a,b,c) VALUES (1,2,3)  ON DUPLICATE KEY UPDATE c=c+1;  UPDATE table SET c=c+1 WHERE a=1;

ON DUPLICATE KEY UPDATE后面可以放多个字段,用英文逗号分割。

INSERT INTO FerDB.RedisConfig(`RedisKey`, `RedisValue`, `RedisDesc`, `CreateDataTime`, `ExpiredMinutes`, `IsEncrypt`, `IsAdmin`, `EnableEdit`)
VALUES ('urn: MinTimeDiff', '120', '最低時間差(分鐘),默認120,參考範圍(30~600)', '2019-01-25 08:00:00', '14400', '0', '0', '1')
ON DUPLICATE KEY UPDATE RedisValue='120', RedisDesc='最低時間差(分鐘),默認120,參考範圍(30~600)', CreateDataTime='2019-01-25 08:00:00',
ExpiredMinutes='14400', IsEncrypt='0', IsAdmin='0', EnableEdit='1';

转载于:https://www.cnblogs.com/peterYong/p/10893899.html

【mysql】知识点相关推荐

  1. mysql知识点系列-数据目录(Data目录)下文件类型一窥究竟

    本文主要基于<高性能MySQL> 文章目录 1.数据库目录 2.frm文件 3.ibd文件 4.ibdata文件 5.ib_logfile文件 6.UNDO日志 7.慢查询日志 8.二进制 ...

  2. mysql知识点回顾(一)

    回顾mysql中的常用知识点 上图为win版本启动关闭服务方式. 连接mysql命令:mysql -u alex -p 查看所有数据库:show databases; use db_name ;切换数 ...

  3. 面试必会系列 - 2.1 MySQL知识点大汇总(基本架构,存储引擎,锁,事务,索引,B+树等等)

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

  4. MySQL知识点整理汇总

    文章目录 前言 一.数据库与SQL 1. 数据库与数据库管理系统 2. 关系数据库 3. MySQL语句的种类 4. MySQL语句的基本书写规则 二.MySQL语句的两大顺序 1. MySQL 语句 ...

  5. 这应该是最全面的MySQL知识点总结啦

    书籍推荐 <SQL基础教程(第2版)> (入门级) <高性能MySQL : 第3版> (进阶) 常见问题总结 存储引擎 一些常用命令 查看MySQL提供的所有存储引擎 mysq ...

  6. Mysql 知识点总结(持续更新)

    挺长一段时间没有动手写博客了,接下来的一段时间将对前段时间学的mysql做一次总结,内容比较多,将持续更新上来,贵在坚持啊~ 关于mysql的,这里不多说,看图说话: 上面的图是最新的统计情况,mys ...

  7. MySQL知识点复习

    MYSQL学习 安装:sudo apt install mysql-server https://blog.csdn.net/qq_38505969/article/details/109957055 ...

  8. 【mysql知识点】查看和修改系统参数

    如何查看和修改系统参数? 在MySQL里,参数也可以叫变量(Variables),一般配置文件为:/etc/my.cnf.当MySQL实例启动时,MySQL会先去读一个配置参数文件,用来寻找数据库的各 ...

  9. mysql知识点概览_MySQL 基本架构概览

    下图是 MySQL 的一个简要架构图,从下图可以清晰的看到 SQL 语句在 MySQL 内部是如何执行的. 先简单介绍下图涉及的一些组件的基本作用,后面还会详细介绍到这些组件的作用. 连接器: 身份认 ...

  10. mysql知识点汇总

    1. 数据库的安装 2. 数据库设计需要注意什么 3. SQL语句优化 4. 怎样处理慢查询? 5. 怎样更好的利用数据库索引? 6. 事务隔离级别有哪些?怎么实现的? 7. 数据库锁有哪些? 8. ...

最新文章

  1. Linux C 实现生产者消费者问题
  2. 商品搜索引擎---推荐系统设计
  3. 微软模拟飞行2020服务器多少内存,《微软模拟飞行2020》配置公开,想玩爽还需玩家加大投入...
  4. git commit或者pull代码时提示代码冲突解决方法
  5. MongoDB数据库(4.mongodb数据库的备份和恢复)
  6. python判断数字_python判断变量是否为数字、字符串、列表、字典等
  7. ArcGIS中合并(merge)、联合(union)、追加(append)、融合(dissolve)的用法区别与联系
  8. 【转】设计模式六大原则——SOLID
  9. 【计算机网络复习】1.1.2 标准化工作及相关组织
  10. 2013/12/25
  11. matlab trapz二重积分函数_matlab二重积分
  12. 【MySQL】MySQL监控工具 mysql-monitor
  13. PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
  14. presentViewController:navigationController animated:YES completion:^(void)
  15. 微信小程序微商城(四):动态API实现商品详情页(上)
  16. html隐藏标签console,console的隐藏知识点,你get到了嘛?
  17. MySQL数据类型有哪些?
  18. 3D Max 2016安装教程
  19. 【优化系列】VS与YASM的集成使用
  20. visio流程图添加连接点

热门文章

  1. 《挑战程序设计竞赛》---算法高级篇
  2. .net微信公众号开发——群发消息
  3. vetur插件提示 'v-for' directives require 'v-bind:key' directives.错误的解决办法
  4. discuz是如何判断手机端访问的
  5. python 的对象内建方法:__XXX__(a1,a2)
  6. ASP.NET MVC3 Model验证总结
  7. Ajax控件和类库简析
  8. C#开发的程序性能比Vb.net开发的同样功能的程序性能要高?
  9. Thread.Join 和 Task.Wait 方法
  10. shell基本理论知识