mysql分组后取最新的一条记录
1、mysql分组取每组前三条记录#根据订单号(order_no)分组,每个订单取3个订单明细select *FROM ( select *, ROW_NUMBER() OVER (PARTITION...
2024.11.12背景:
本地数据库版本5.7.12-log,windows 10
远程服务器版本5.5 ,centos 7.6
程序:wgcloud运维监控系统
直接使用Navicat premium 工具中的数据同步功能出错,所以分开导出导入处理。
本地使用Navicat premium版本导出
/* Navicat Premium Data Transfer Source Server : localhost Source Server Type: MySQL Source Server Version : 50722 Source Host: localhost:3306 Source Schema : wgcloudos Target Server Type: MySQL Target Server Version : 50722 File Encoding : 65001 Date: 09/12/2020 11:03:30*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for app_info-- ----------------------------drop TABLE IF EXISTS `app_info`;CREATE TABLE `app_info`(`ID` char(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`HOST_NAME` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`APP_PID` char(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`CREATE_TIME` timestamp(0) DEFAULT NULL ON update CURRENT_TIMESTAMP(0),`APP_NAME` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`CPU_PER` double(8, 2) DEFAULT NULL,`MEM_PER` double(10, 2) DEFAULT NULL,`APP_TYPE` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`STATE` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`ACTIVE` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,PRIMARY KEY (`ID`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Table structure for app_state-- ----------------------------drop TABLE IF EXISTS `app_state`;CREATE TABLE `app_state`(`ID` char(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`APP_INFO_ID` char(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`CPU_PER` double(8, 2) DEFAULT NULL,`MEM_PER` double(10, 2) DEFAULT NULL,`CREATE_TIME` timestamp(0) DEFAULT NULL,PRIMARY KEY (`ID`) USING BTREE,INDEX `APP_STAT_INDEX`(`APP_INFO_ID`, `CREATE_TIME`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- -----------------------------------------------------------其他表类似省略然后再次使用命令或者sql导入工具运行后提示以下错误:
ERROR 1067 (42000): Invalid default value for ‘CREATE_TIME‘
注意原因是因为timestamp函数的长度在5.7以上版本才支持,比如timestamp(0),timestamp(3)等。5.5不支持,修改为以下样式。
CREATE TABLE `APP_INFO` (`ID` char(32) NOT NULL,`HOST_NAME` char(50) DEFAULT NULL,`APP_PID` char(200) DEFAULT NULL,`CREATE_TIME` timestamp NULL DEFAULT NULL ON update CURRENT_TIMESTAMP,`APP_NAME` varchar(50) DEFAULT NULL,`CPU_PER` double(8,2) DEFAULT NULL,`MEM_PER` double(10,2) DEFAULT NULL,`APP_TYPE` char(1) DEFAULT NULL,`STATE` char(1) DEFAULT NULL,`ACTIVE` char(1) DEFAULT NULL,PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;wgcloud 3.2.8之前版本的数据库表名是小写字母,以后是大写字母,在windows上没有区别,但 Linux系统中如果配置my.cnf文件lower_case_table_names字段的话就会产生错误无法识别表,会重新创建。
后续会增加wgcloud运维工具的使用介绍,欢迎订阅关注。
1、mysql分组取每组前三条记录#根据订单号(order_no)分组,每个订单取3个订单明细select *FROM ( select *, ROW_NUMBER() OVER (PARTITION...
2024.11.12首先写了一个小的例子:单个字段的操作这是数据库中的表:分组:select 重复字段 From 表 Group By 重复字段 Having Count(*)>1查看是否有重复的数据:GROUP BY ...
2024.11.12数据库优化sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和InnoDB的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一...
2024.11.15作者:高鹏文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,GTID 相关技术知识。这个问题是最近一个朋友问我的。刚好就好好看了一下,留下这样的记录。本文...
2024.11.12朋友找我说boot项目配置了mysql的root账户一直报错Access denied for user ‘root‘@‘localhost‘第一反应就是配置文件写错了,检查了一遍没问题,难道是roo...
2024.11.12