delete

数据库面试题--说说delete与truncate的区别?

爱⌒轻易说出口 提交于 2020-03-03 04:41:45
说说delete与truncate的区别? delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。 truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。 Delete操作演示: Truncate操作演示 来源: CSDN 作者: jiangwenhao_1 链接: https://blog.csdn.net/qq_40332952/article/details/104507020

MySQL delete语句的问题

与世无争的帅哥 提交于 2020-03-02 19:45:49
以前遇到过几次这个问题,都觉得问题不大,所以没有记录,但是这次又遇到了,而且没有第一时间想起来,所以还是有记录下的必要 MySQL delete语句使用子查询操作同一张表的时候会抛出 DELETE from abc where id in (select c.id from abc c where c.C_ID is null ) [Err] 1093 - You can't specify target table 'abc' for update in FROM clause 解决办法:加上一个虚拟中间表中转一下 DELETE from abc where id in (select * from (select c.ID from abc c where c.C_ID is null) s ); 在更新的时候也会存在同样的问题 解决到了,但是原理是什么?不清楚,希望有大神看到后指教下,谢谢。 还有一个问题,删除的时候是不能起别名的 delete from abc s where s.ID = 'qeq'; [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to

C++中delete和delete[]的区别

元气小坏坏 提交于 2020-03-02 01:22:38
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。 请看下面的程序。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include ; using namespace std; class T { public : T() { cout << "constructor" << endl; } ~T() { cout << "destructor" << endl; } }; int main() { const int NUM = 3; T* p1 = new T[NUM]; cout << hex << p1 << endl; // delete[] p1; delete p1; T* p2 = new T[NUM]; cout << p2 << endl; delete [] p2; } 大家可以自己运行这个程序,看一看 delete p1 和

  第 2章 简单的HTTP协议

断了今生、忘了曾经 提交于 2020-03-01 14:12:54
2.1 协议用于客户端和服务器端之间的通信 2.1 TTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始 建立通信的,服务器端在没有接收到请求之前不会发送响应。 2.2 请求报文 和响应报文 下面则是从客户端发送给某个 HTTP 服务器端的请求报文中的内容 GET /index.htm HTTP/1.1 Host: hackr.jp 请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的。 响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可 选的响应 首部字段以及实体主体构成。 HTTP/1.1 200 OK Date: Tue, 10 Jul 2012 06:50:15 GMT Content-Length: 362 Content-Type: text/html <html> ...... 在起始行开头的 HTTP/1.1 表示服务器对应的 HTTP 版本。 紧挨着的 200 OK 表示请求的处理结果的状态码(status code)和原因短语(reason-phrase)。下一行显 示了创建响应的日期时间,是首部字段(header field)内的一个属性。 接着以一空行分隔,之后的内容称为资源实体的主体(entity body)。 2.5 告知服务器意图的

HTTP协议之告知服务器意图的HTTP方法

帅比萌擦擦* 提交于 2020-03-01 13:41:19
GET:获取资源 GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。 POST:传输实体主体 POST方法用来传输实体的主体。虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法。虽说POST的功能与GET很相似, 但POST的主要目的并不是获取响应的主体内容 。 PUT:传输文件 PUT方法用来传输文件。就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。但是,鉴于 HTTP/1.1的PUT方法自身不带验证机制 ,任何人都可以上传文件, 存在安全性问题 ,因此 一般的web网站不使用该方法 。若 配合web应用程序的验证机制 ,或架构设计采用 REST (表向化状态转移)标准的同类web网站,就可能会开放使用PUT方法。 HEAD:获得报文首部 HEAD方法和GET方法一样,只是 不返回报文主体部分 。用于确认 URI的有效性 及 资源更新的日期时间 等。 DELETE:删除文件 DELETE方法用来删除文件,是与PUT相反的方法。DELETE方法按请求URI删除指定的资源。但是, HTTP/1.1的DELETE方法本身和PUT方法一样不带验证机制,所以一般的web网站也不使用DELETE方法 。当 配合web应用程序的验证机制 ,或遵守 REST

delete

两盒软妹~` 提交于 2020-03-01 05:58:30
SQL DELETE 语法 DELETE FROM table_name WHERE some_column=some_value; 来源: CSDN 作者: 弱水三千12138 链接: https://blog.csdn.net/weixin_42468028/article/details/104571688

TRUNCATE TABLE 与DELETE 的区别

笑着哭i 提交于 2020-03-01 03:56:09
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。 对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句 。 由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。 TRUNCATE TABLE 不能用于参与了索引视图的表。 来源: oschina 链接: https://my.oschina.net/u/1380685/blog/228386

Truncate Table-笔记

℡╲_俬逩灬. 提交于 2020-03-01 03:14:28
1、语法: TRUNCATE TABLE name 2、参数释义 name是要截断的表的名称或要删除其全部行的表的名称。 3、区别 1)、TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。 2)、TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。 3)、对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。 4)、TRUNCATE TABLE 不能用于参与了索引视图的表 5)、对用TRUNCATE TABLE删除数据的表上增加数据时,要使用UPDATE STATISTICS来维护索引信息。 来源: oschina 链接:

MySQL 主从幂等复制slave_exec_mode=IDEMPOTENT

若如初见. 提交于 2020-03-01 01:48:12
MySQL slave_exec_mode 参数用于控制主从复制数据冲突时的处理策略,可选值有STRICT和IDEMPOTENT,分别代表严格模式和幂等模式,默认值为STRICT,该参数可动态调整。 原文地址: https://mytecdb.com/blogDetail.php?id=76 STRICT,严格模式 IDEMPOTENT,幂等模式 默认STRICT模式下,从库复制过程中,发现数据冲突,会立即报错,并中断复制线程。设置为IDEMPOTENT,遇到主键或唯一键冲突以及主键不存在时,并不会报错,会直接覆盖数据或者忽略数据不存在,主从复制仍然正常进行。设置这个参数将会立即生效,并不需要重启复制。 一、IDEMPOTENT幂等复制测试 MySQL 版本 5.7.19 binlog_format:ROW 表结构:id主键,name varchar(50) CREATE TABLE tb ( id int(11) NOT NULL, name varchar(50) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 1. insert 主键或唯一键冲突 主库表数据:空 备库表数据:1,‘1’ 此时在主库插入数据,1,‘2’ 结果: 备库表数据:1,‘2’,主键或唯一键冲突

HTTP协议的GET,POST,PUT,DELETE

Deadly 提交于 2020-02-29 19:44:42
前言 get , post , put , delete ,均是常用的HTTP请求方法。 其中只有 put 是幂等的。 GET和POST get 一般用于向服务器查询数据, post 一般用于向服务器增添数据 本质上 get 和 post 均是HTTP协议的两种请求方法,运行在TCP上的两种方法 参数区别 get 使用URL传参, post 使用body传参。 get 对参数长度和大小有限制, post 无限制 安全性区别 get 参数外露,且请求参数被浏览器缓存,不安全 post 较为安全 TCP数据包区别 get 将请求头和参数一同发送,服务器响应200 post 先发送请求头,服务器响应100后,在发送参数,响应200 PUT 一般用于向服务器修改数据 DELETE 一般用于向服务器删数据 来源: CSDN 作者: 代码写的完嘛 链接: https://blog.csdn.net/qq_40781291/article/details/104574817