【Mysql用group by更新最大值】教程文章相关的互联网学习教程文章

mysql 更新sql报错:You can't specify target table 'wms_cabinet_form' for update in FROM clause

数据库里面有两个字段的位置不对,要把他们对调换下。因为没有数据库写的权限,需要用sql语句来实现。原来以为简单的 update table a set a.字段a=(select b字段 from table where id=?) ,set a.字段b=(select a字段 from table where id=?) where id=? ,结果报了 这个问题 You can‘t specify target table ‘wms_cabinet_form‘ for update in FROM clause google 之后发现是mysql本身的问题,需要这样来写: update tabl...

mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)

代码如下: show VARIABLES like ‘%max_allowed_packet%‘;显示的结果为: 复制代码 代码如下: +--------------------+---------+| Variable_name | Value |+--------------------+---------+| max_allowed_packet | 1048576 |+--------------------+---------+ 以上说明目前的配置是:1M 修改方法 1、修改配置文件 可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。 复制代码 代码...

MySQL数据库基础(二)(约束以及修改数据表)(持续更新中)【图】

约束的作用?1.约束保证数据的完整性、一致性;2.约束分为表级约束、列级约束;3.约束类型包括:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)、FOREIGN KEY(外键约束); 列级约束:只针对某一个字段;表级约束:针对两个或两个以上的字段; 1.外键约束的要求解析 外键约束作用:1.保持数据一致性、完整性;2.实现一对一或一对多关系;(这是也把MySQL称之为“关系型”数据库的一...

MySQL数据库基础(三)(操作数据表中的记录)(持续更新中)【图】

命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值‘NULL’或‘DEFAULT’,主键的值仍会遵守默认的规则;如果省略列名的话,所有的字段必须一次赋值。 INSERT SET(用的较少,一次只能插入一条记录) 命令: 插入记录INSERT SELECT 命令: 2.单表更新记录UPDATE 命令: MySQL数据库基础(三)(操作数据表中的记录)(持续更新中)标签:基础 9.png efault 赋值 str ...

MySQL更新死锁问题【代码】

首先我们来看下coupon的表结构 CREATE TABLE `coupon` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘ ‘,`spec_id` char(20) NOT NULL COMMENT ‘优惠券活动编号‘,`coup_usr` char(11) DEFAULT NULL COMMENT ‘优惠券用户‘,`coup_num_usr` int(11) unsigned NOT NULL DEFAULT ‘0‘ COMMENT ‘该用户已领取该活动的券数量‘,PRIMARY KEY (`id`),KEY `coup_usr_idx` (`coup_usr`),KEY `spec_idx` (`spec_id`) ) ENGINE=InnoD...

mysql ON DUPLICATE KEY UPDATE重复插入时更新【代码】

INTO clients (client_id,client_name,client_type) SELECT supplier_id,supplier_name,‘advertising‘ FROM suppliers WHERE not exists(select * from clients where clients.client_id=suppliers.supplier_id);示例一:插入单条记录INSERT INTO clients (client_id,client_name,client_type) SELECT 10345,‘IBM‘,‘advertising‘ FROM dual WHERE not exists (select * from clients where clients.client_id=10345);使用 du...

MySql学习之插入、删除和更新【代码】

INTO customers VALUES( NULL, ‘person‘); 此例子插入一个新客户到customers表。存储到每个表列中的数据在VALUES子句中给出,对每个列必须提供一个值。如果某个列没有值(如上面的cust_contact和cust_email列),应该使用NULL值(假定表允许对该列指定空值)。各个列必须以它们在表定义中出现的次序填充。第一列cust_id也为NULL。这是因为每次插入一个新行时,该列由MySQL自动增量。你不想给出一个值(这是MySQL的工作),又不能...

MySQL索引统计信息更新相关的参数

MySQL统计信息相关的参数:1. innodb_stats_on_metadata(是否自动更新统计信息),MySQL 5.7中默认为关闭状态仅在统计信息配置为非持久化的时候生效。    也就是说在innodb_stats_persistent 配置为OFF的时候,非持久化存储统计信息的手,innodb_stats_on_metadata的设置才生效。    当innodb_stats_on_metadata设置为ON的时候,    InnoDB在执show table status 或者访问INFORMATION_SCHEMA.TABLES 或者INFORMATION_...

mysql大表更新sql的优化策略(转)【代码】

productSET brand_id = [newBrandId] WHERE pid = [pid]AND brand_id = 0 项目组的mysql专家帮我分析了下,因为pid字段没有索引,mysql引擎要逐行扫描出与传入的pid值相等的列,然后更新数据,也就是要扫描完1000W+行磁盘数据才能执行完这个sql。因为是update操作,没有用到索引,于是导致这个sql会占用表锁,其它的sql只能等这个sql执行完成之后才能开始执行。更严重的是,这个千万级的表里面有多少个不同的pid,我就要执行多少...

mysql 简单的sql优化示例[不定时更新]

对于慢sql的分析步骤: 1) desc|explain sql 查看执行计划, 对于type很慢的, 分析是否建立了对应字段的索引 2) 进行排除法, 把子查询抽离出来, 单独执行,定位慢查询是哪个子查询导致的. 专门进行优化. 脚本: CREATE TABLE stu ( id BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT ‘主键‘, NAME VARCHAR(50) NOT NULL DEFAULT ‘‘ COMMENT ‘名称‘, phone BIGINT(20) NULL COMMENT ‘电话‘, UNIQUE KEY idx_phone (phone) )E...

安装mysql数据库中的技巧、错误排查以及实用命令(持续更新)

一、初始化data目录(解压版解压后没有data目录) 在此之前mysql解压,并配置path环境变量,然后管理员cmd 输入mysqld -install 安装mysql。 初始化命令:mysqld --initialize-insecure --user=mysql 二、修改root密码,连接数据库后use mysql 1、update mysql.user set authentication_string=password(‘123qwe‘) where user=‘root‘ and Host = ‘localhost‘;新版Mysql已经没有password字段,而是将加密后的用户密码存储于a...

MySQL索引统计信息更新相关的参数

MySQL统计信息相关的参数:1. innodb_stats_on_metadata(是否自动更新统计信息),MySQL 5.7中默认为关闭状态仅在统计信息配置为非持久化的时候生效。    也就是说在innodb_stats_persistent 配置为OFF的时候,非持久化存储统计信息的手,innodb_stats_on_metadata的设置才生效。    当innodb_stats_on_metadata设置为ON的时候,    InnoDB在执show table status 或者访问INFORMATION_SCHEMA.TABLES 或者INFORMATION_...

我的MYSQL学习心得(八) 插入 更新 删除【代码】【图】

CREATE TABLE person (id INT UNSIGNED NOT NULL AUTO_INCREMENT,NAME CHAR(40) NOT NULL DEFAULT ‘‘,age INT NOT NULL DEFAULT 0,info CHAR(50) NULL,PRIMARY KEY (id) )CREATE TABLE person_old (id INT UNSIGNED NOT NULL AUTO_INCREMENT,NAME CHAR(40) NOT NULL DEFAULT ‘‘,age INT NOT NULL DEFAULT 0,info CHAR(50) NULL,PRIMARY KEY (id) )INSERT INTO person_old VALUES (11,‘Harry‘,20,‘student‘),(12,‘Beckham‘...

Mysql实现级联操作(级联更新、级联删除)【代码】【图】

table stu( sid int UNSIGNED primary key auto_increment, name varchar(20) not null) TYPE=InnoDB charset=utf8;create table sc( scid int UNSIGNED primary key auto_increment, sid int UNSIGNED not null, score varchar(20) default ‘0‘, index (sid), --外键必须加索引 FOREIGN KEY (sid) REFERENCES stu(sid) ON DELETE CASCADE ON UPDATE CASCADE) TYPE=InnoDB charset=utf8; --说明: 外键必须建立索引; FOREIGN ...

使用fdmemTable来代替clientDataset,解决MySQL5.6(含)以上版本用cds多次更新时的错误

procedure TForm3.btnSaveClick(Sender: TObject);var stream, stream2: TMemoryStream; buf: TBytes;begin stream := TMemoryStream.Create; try try if FDMemTable1.State in [dsInsert, dsEdit] then FDMemTable1.Post; if FDMemTable1.ChangeCount = 0 then Exit; FDMemTable1.ResourceOptions.StoreItems := [siDelta, siMeta]; // 只提交修改的数据 FDMemTable1.SaveToStream(str...