当前位置: 首页 > 知识库问答 >
问题:

MySql安全模式删除

羊舌航
2023-03-14
DROP TABLE IF EXISTS `session`;
CREATE TABLE `session` (
`Id` varchar(128) NOT NULL,
`Browser` varchar(128) NOT NULL,
`IpAddress` varchar(128) NOT NULL,
`UserId` varchar(128) NOT NULL,
`CreatedAt` datetime DEFAULT NULL,
`ModifiedAt` datetime DEFAULT NULL,
`CreatedBy` varchar(256) DEFAULT NULL,
`ModifiedBy` varchar(256) DEFAULT NULL,
PRIMARY KEY (`Id`)
);


DELETE FROM session 
WHERE Id IN (SELECT * FROM (SELECT Id FROM session WHERE CreatedAt > NOW()) AS temp);
DELETE FROM session 
WHERE Id !='' AND Id IN (SELECT * FROM (SELECT Id FROM session WHERE Browser = "Mozilla") AS temp);

共有1个答案

闻人河
2023-03-14

也许您可以尝试在使用键的where子句中添加一个虚拟条件,例如。

DELETE FROM session 
WHERE Id <> '' AND
      Id IN (SELECT * FROM (SELECT Id FROM session WHERE CreatedAt > NOW()) AS temp);

假设主键列id始终不是空字符串,那么添加此条件不会影响您的删除逻辑。

正如您提到的,您还可以通过以下方式在会话中禁用安全模式:

SET SQL_SAFE_UPDATES = 0;
SET SQL_SAFE_UPDATES = 1;
 类似资料:
  • 所以我编写以下SQL: 但是,有一个错误: 我很困惑因为当我写的时候 null

  • 问题内容: 我有一位表格讲师,我想删除工资范围在一定范围内的记录。一种直观的方式是这样的: 但是,在安全模式下,如果不提供主键(ID),则无法删除记录。 所以我写下面的sql: 但是,有一个错误: 我很困惑,因为当我写 它不会产生错误。 我的问题是: 此错误消息的真正含义是什么,为什么我的代码是错误的? 如何重写此代码以使其在安全模式下工作? 谢谢! 问题答案: 到处搜寻,最流行的答案似乎是“只关

  • 我尝试删除table1中也出现在table2中的条目。code是table1和table2的主键。我使用以下查询: 但是,我得到了以下错误消息: 错误代码:1175。您正在使用安全更新模式,并且您尝试更新没有使用列的的表要禁用安全模式,请切换首选项中的选项- 但我的理解是,我已经将与列一起使用。 对此有什么建议吗?

  • 8.5. 安全模式 PHP的safe_mode选项的目的是为了解决本章所述的某些问题。但是,在PHP层面上去解决这类问题从架构上来看是不正确的,正如PHP手册所述(http://php.net/features.safe-mode)。 当安全模式生效时,PHP会对正在执行的脚本所读取(或所操作)文件的属主进行检查,以保证与该脚本的属主是相同的。虽然这样确实可以防范本章中的很多例子,但它不会影响其它

  • 我需要允许绕过spring安全认证访问特定的控制器,但我不确定为什么spring仍然认为这些URL是受保护的……\我注意到了这个问题,因为每次我得到的是401响应 在调试模式下,我检查了restAuthenticationFilter()提供的筛选器仍在处理请求,尽管这些请求理论上是公共URL 有人能猜到我做错了什么吗? 我很感激你的帮助 我的ConfigClass 我的控制器

  • YAML模式被定义为一组标签的组合,并包括用于解析非特定标签的机制。 YAML中的故障安全模式以这样的方式创建,即它可以与任何YAML文档一起使用。 它也被视为通用YAML文档的推荐架构。 类型 故障安全模式有两种类型:通用映射和通用序列。 通用映射 它代表一个关联容器。 这里,每个键在关联中是唯一的,并且映射到恰好一个值。 YAML对键定义没有任何限制。 下面给出了表示通用映射的示例 - JSO