草庐IT

delete_record

全部标签

mysql - 更改 SQLAlchemy 的 Session.delete() 行为

关于SQLAlchemy的Session的delete()方法是否有任何配置可能性?我想让相应的对象在数据库中标有已删除的标志,而不是从中删除。有没有办法做到这一点?目的是在不失去SQLAlchemy的级联特性优势的情况下,构建一个没有破坏性更新的数据库。 最佳答案 创建您自己的session类继承自Session并用您自己的逻辑覆盖delete()方法(对于那些需要逻辑删除),回退到其他对象的默认实现。如果你使用sessionmaker或者类似的工厂,你也可以在class_参数中提供你的类。希望这能回答您的问题。但是,话虽如此,对

mysql - 如果我杀死一个巨大的 MySQL InnoDb DELETE 查询会发生什么?

我目前正在运行一个DELETE查询,它花费的时间比预期的要长很多(已经10小时了!)。我想通过phpmyadmin进程终止它,但是我担心会发生什么。他自动回滚会不会也需要很多时间?当前查询状态显示“正在更新”。 最佳答案 这取决于您的查询目前所处的阶段。但通常回滚花费的时间大致相等,有时甚至比原始操作花费的时间更多。根据thisdocument的第2点,这不是真正可取的。此外,请务必验证您的MySQL版本,因为它有一个非常讨厌的错误,根据thisarticle在某些版本中删除/更新查询回滚。重新启动/终止MySQL进程无济于事,因为

mysql - [MySQL] : DELETE rows from two dependent tables

我正在尝试根据第三个表ID删除两个相关表中的所有行。表结构:Transaction-Transaction_ID(primary)-TimestampPurchase-Item_ID-Transaction_ID-Purchase_ID(primary)Item-Item_ID(primary)-Client_ID我想从交易/购买中删除与项目中的Client_ID匹配的所有行。听起来很简单……即使是我的新手也能理解……DELETEdbName.tFROMdbName.TransactiontJOINdbName.PurchasepONp.Transaction_ID=t.Transac

mysql - 错误查询 : DELETE and LEFT JOIN

DELETEFROMprogramScheduleLEFTJOINprogramONprogramSchedule.pid=program.idWHEREprogram.channel_id=10我收到这个错误:#1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'LEFTJOINprogramONprogramSchedule.pid=program.id'atline1为什么?

MySQL 限制/偏移 : get all records except the first X

我想查询第50条及以上的所有记录。因此,我不想做类似LIMIT49,99999的事情,而是想知道是否有官方方法。 最佳答案 不,对不起。来自MySQLDocumentation:Toretrieveallrowsfromacertainoffsetuptotheendoftheresultset,youcanusesomelargenumberforthesecondparameter.Thisstatementretrievesallrowsfromthe96throwtothelast:SELECT*FROMtblLIMIT95

php - Web 应用程序中的 "Undoing deletes"?

我看到越来越多的网站在按下删除按钮后提供撤消选项。按钮背后的逻辑是如何完成的?项目是否被javascript删除并从用户屏幕上“消失”并添加了计划删除,让用户有时间撤消它,或者它是如何工作的?为用户提供撤消功能的其他选项是什么? 最佳答案 这实际上取决于应用程序的结构。一种常见的方法是不删除记录/项目,但在内部将其标记为已删除(使用bool列),将其从所有查询和列表中排除。如果您有节点结构,您可能希望将项目移动到“回收站”节点,从那里可以将项目恢复到其原始位置。在这两种变体中,已删除的项目会不时清除-基于时间(3周后删除)或数量(最

MySQL INSERT IF NOT EXIST else DELETE 行

我有一张表将另外2个表链接在一起。我有一个复选框列表,当其中一个被选中时,它会通过ajax将值发送到服务器。我想做的是,如果值不在数据库中,则插入它们(选中),或者如果它们存在,则删除它们(未选中)有没有办法不用写几个查询就可以做到?我知道插入/更新并不难,但是删除呢? 最佳答案 您可以随时删除,如果受影响的行为0,则插入。简单、简单且有效。 关于MySQLINSERTIFNOTEXISTelseDELETE行,我们在StackOverflow上找到一个类似的问题:

Mysql:2个ID的主键内部连接给出 "Range checked for each record"

在对具有2个值的PRIMARY键(使用IN或OR构造)执行INNERJOIN时,在EXPLAINSELECT中得到“检查每条记录的范围(索引映射:0x1)”这里是查询:SELECT*FROMmessageASmINNERJOINuserASuONu.id=m.sender_idORu.id=m.receiver_id在做解释时,它给了我:+----+-------------+-------+------+---------------+------+---------+------+-------+-------------------------------------------

MySQL 专家 : Delete all rows older than x days but not the latest one

首先,这是创建“玩家历史”的查询它可以按你想要的频率执行,它只会为玩家创建新的历史行,如果没有昨天的历史行,或者如果值自过去的最新历史条目以来发生变化。INSERTINTO`player_history`(`player_id`,`date`,`races`,`maps`,`playtime`,`points`)SELECT`p`.`id`,DATE_SUB(NOW(),INTERVAL1DAY),`p`.`races`,`p`.`maps`,`p`.`playtime`,`p`.`points`FROM`player``p`WHERE`p`.`playtime`ISNOTNULLAN

php - 使用 Active Record 在 Yii 中调用数据库 View

我了解如何使用Yii的事件记录环境查询表。我找不到调用mysqlView的文档。另外,我知道如何使用gii工具在事件记录中对表进行建模,但是有没有办法为数据库View执行此操作? 最佳答案 我没有相同的经历,此评论适用于遇到麻烦的人。使用带有一些连接和计算的mysqlView我得到以下错误..app\\models\\db\\WarComplete必须有一个主键。我通过添加...解决了这个问题publicstaticfunctionprimaryKey(){return['id'];}...覆盖我的模型。