草庐IT

auto-delete

全部标签

mysql - 通过选择结果更改 AUTO_INCREMENT 值

基本上我想要的是以下代码的工作版本:ALTERTABLEtable_nameAUTO_INCREMENT=(SELECT`AUTO_INCREMENT`FROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA='database_name'ANDTABLE_NAME='another_table_name');错误:1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'AUTO

ES delete_by_query条件删除的几种方式

 es查询删除的几种方式1.根据id删除#根据id删除POST/indexname/_delete_by_query{ "query":{   "match":{   "id":"100000"      } }}2.根据多个id删除#根据多个id删除POST/indexname/_delete_by_query{"query":{"bool":{"filter":[{"terms":{"id":["100000","200000"]}}]}}}3.根据多个id范围删除#根据多个id范围删除POST/indexname/_delete_by_query{"query":{"range":{"i

带有连接、HAVING 和 GROUP BY 的 MySQL DELETE 语句

我有一个项目表和另一个报告。每个报告都有一个外键链接到被报告的项目。我正在尝试删除此查询中显示的所有项目:SELECTitems.id,title,SUM(weight)AStotal_weight,SUM(weight)*10/viewsASscoreFROMitems,reportsWHEREitems.id=reports.item_idGROUPBYitems.idHAVINGscore>=50;尝试这样的事情:DELETEitemsFROM(SELECTitems.id,title,SUM(weight)AStotal_weight,SUM(weight)*10/viewsA

mysql - 计算 auto_increment 与其最大值的接近程度的简便方法?

所以昨天我们有一个表,它有一个达到最大值的smallint的auto_incrementPK。我们不得不在紧急情况下更改表格,这绝对不是我们喜欢的方式。是否有一种简单的方法来报告我们使用的每个auto_increment字段与其最大值的接近程度?我能想到的最好方法是执行SHOWCREATETABLE语句,解析出自动递增列的大小,然后将其与表的AUTO_INCREMENT值进行比较。另一方面,鉴于架构不会经常更改,我是否应该存储有关列最大值的信息并使用SHOWTABLESTATUS获取当前的AUTO_INCREMENT? 最佳答案 我

mysql - 我应该使用 ON DELETE CASCADE、:dependent => :destroy, 还是两者都使用?

在Rails应用程序中,我在MySQL中有外键约束,我将它们全部手动设置,与我的迁移分开。我正在考虑是否应该使用ActiveRecord的:dependent=>:destroy选项。例如,在我的架构中我有表...users-----log_entries-----------user_id#HasFKconstrainttousers.idwithONDELETECASCADE在我的模型中我可以...classUser:destroyend我是否应该忽略模型上的依赖选项,而将其留给数据库?或者把它放在那里好吗?删除此应用程序中的内容时,我不需要运行任何回调。在所有情况下,只需删除它们

mysql - 使用子查询mysql在同一个表中更改auto_increment

我正在使用mysql。我有一个带有auto_increment计数器集的数据库表。现在由于一项要求,我需要保留100个起始ID,并从101开始移动所有现有记录,因此当前ID1将变为101,ID2将变为102,依此类推。我可以将记录移动到101,但问题是如何将auto_increment计数器更改为max(id)+1。我的主要限制是我需要在单个sql语句中完成。我无法使用@counter保存该值并在以后使用它。我尝试使用下面的查询ALTERTABLEroleAUTO_INCREMENT=(SELECTrd.counterFROM(SELECT(MAX(id)+1)AScounterFRO

mysql auto_increment 5?

我遇到了一个非常非常非常奇怪的mysql问题。我有一个主键“id”。它设置为自动递增。问题是,第一个条目从“3”开始。每个新条目增加5,所以下一个条目的id是8,下一个是13,然后是18,依此类推。这是愚蠢的。为什么它不像应该的那样只增加1?为什么从3点开始???我是否缺少某些设置?如果有帮助,我正在使用phpmyadmin。 最佳答案 有一个my.cnf配置:auto_increment_increment.它用于主-主服务器设置,以防止相同的key被两个不同的服务器定义两次。因此,将其与auto_increment_offset

MySQL DELETE 使用 Having 和 Count 的子查询

我正在尝试使用以下查询删除多个条目:首先,我使用此查询找到要删除的条目:SELECTguidFROMaccountGROUPBYguid,typeHAVINGcount(type)>1);然后我将此查询添加到DELETE语句中:DELETEFROMaccountWHEREguidIN(SELECTguidFROMaccountGROUPBYguid,typeHAVINGcount(type)>1);但是我得到这个错误:您不能在FROM子句中指定要更新的目标表“account” 最佳答案 我认为您需要使用临时表来实现您的需求,如下所示

php - MySQL InnoDB AUTO_INCREMENT 辅助列

我正在制作一个系统,用户可以在其中上传他们想要的任何文件,而不用它来执行任何类型的代码。作为其中的一部分,我重命名了每个文件,并将其原始名称存储在MySQL表中。此表包含上传它的用户的ID,以及上传的唯一ID。目前我是这样做的:CREATETABLE`uploads`(`user_id`INT(11)NOTNULL,`upload_id`INT(11)NOTNULLAUTO_INCREMENT,`original_name`VARCHAR(30)NOTNULL,`mime_type`VARCHAR(30)NOTNULL,`name`VARCHAR(50)NOTNULL,PRIMARYK

mysql - 如何在记录删除后从上次停止的地方创建一个 id auto_increment?

这没什么大不了的,但我想知道是否可以做到。现在,当我插入一条新记录时,自动增量并设置为主键的id字段将其值增加一个:id|first_name|last_name------------------------------1|John|Smith2|Jane|Doe但是,如果我删除记录2,我插入的下一条记录的ID将为3。有什么方法可以让它的ID自动为2(无需手动插入)? 最佳答案 auto_increment计数器(至少,对于InnoDB)保存在表元数据中,并且独立于表中的数据:它是递增的当插入一些数据时,仅此而已。所以,不,不可能