草庐IT

auto-delete

全部标签

MySQL 使用没有 auto_increment 的递增值填充新列

我看到很多几乎相似的问题都有明显的答案,但我很确定这个问题还没有出现在这里。我需要向现有表添加一个自动递增的id列并将其设置为主键。我不能丢失任何现有数据。我可以成功地对表结构进行更改,但我收到有关新列中数据被截断的错误。当我查看数据时,新的自动递增列中的每个值都是null(因此不是唯一的)。如何回填这些值以确保主键的唯一性?***如果有更简单的解决方案,我宁愿避免将现有数据转储到临时表并重新插入。当前脚本:altertablethe_tableaddnew_fieldintfirst;altertablethe_tabledropprimarykey,addprimarykey(ne

php - 如何知道 DELETE 查询是否真的删除了一行,使用 PDO

我正在使用PDO语句将DELETE查询传递给mysql。我想知道,查询是否真的删除了一行?我尝试使用$stmt->execute()的返回值functiondelete(){$stmt=$this->db->prepare("DELETEFROMusersWHEREid=:id");$stmt->bindValue(':id',$_POST[id]);var_dump($stmt->execute());}但是这始终给出true,即使没有行被删除。即使我没有发布任何值(value),甚至一次又一次地发布相同的值(value),这也是正确的。可能是因为查询成功并删除了0行,所以$stmt

mysql - phpmyadmin 不再让我设置 auto_increment 值

我以前可以在phpmyadmin->table->operations中设置auto_increment值,但我现在在这个框中看不到了:http://puu.sh/4dhf4.png它曾经就在下面,是的,我的表有一个auto_increment字段。我正在使用phpmyadmin4.4.0,我已经尝试从InnoDB切换到MyISAM。我以root身份登录到phpmyadmin。 最佳答案 我不确定他们为什么删除此功能,但执行此“老派”的方法是单击SQL选项卡,然后运行以下MySQL命令:ALTERTABLE`sessions`aut

php - MySQL 覆盖 auto_increment?

我正在创建一个消息传递系统(使用PHP)并想为每条消息分配一个ID号(除了每条具有唯一ID号的实际消息之外)...但是,如果有人回复消息,那么我想要能够为该消息提供与被回复的消息相同的ID...当然我可以按时间显示它们并按顺序显示它们。那么,如果我给该字段一个auto_increment类型,它是否可以被覆盖?意思...每条新消息都有自动值,例如1、2、3等,但有人回复数字2,所以它的ID也需要2或者有更好的方法吗? 最佳答案 绝对没有什么能阻止您将任意值分配给AUTO_INCREMENT列。如有必要,桌面计数器将相应调整。但是,您

mysql - 如何将此 MySQL SELECT 查询转换为 DELETE 查询?

我想从数据库中删除某些项目。我有以下查询:SELECT*FROMsheets,entriesWHEREentries.sheetID=sheets.idANDsheets.clientID=13这有效,并返回2个结果。现在我想将此SELECT查询转换为DELETE查询。但是,以下内容不起作用:DELETEFROMsheets,entriesWHEREentries.sheetID=sheets.idANDsheets.clientID=13MySQL抛出以下错误:1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespon

mysql - DELETE + JOIN + ORDER BY + LIMIT = 语法错误

删除ORDERBY+LIMIT,或JOIN,一切都很好。将它们放在一起,我似乎可以释放Kraken。任何人都可以阐明一些问题?DELETEtable1ASt1FROMtable1ASt1LEFTJOINtable2ASt2ONt1.id=t2.idWHEREt2.field='something'ORDERBYt1.idDESCLIMIT5(Deleteusingaliases)我也尝试过不使用别名并删除WHERE,但无济于事。总是出现语法错误“near'ORDERBY...”。 最佳答案 来自Mysql文档:DELETEForth

mysql - 这个 SQL DELETE FROM 语法有什么问题?

我正在尝试删除96k条记录。删除表xoops_bb_posts_text页面中没有匹配post_id到xoops_bb_posts的所有记录此查询成功返回91k条记录:SELECT*FROMxoops_bb_posts_texttWHEREnotexists(selectpost_idfromxoops_bb_postspWHEREp.post_id=t.post_id);当我试图删除这些记录时出现语法错误,但我没有看到它。DELETEFROMxoops_bb_posts_texttWHEREnotexists(selectpost_idfromxoops_bb_postspWHERE

mysql - 如何重用 auto_increment 值?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Fragmentationofid's(auto_incrementcolumn)inmysql我的数据库中有这一列。假设它的名字是“threadid”。它包含给予每个线程以进行区分的唯一ID。线程标识98个76个5个4个3个2个1假设我删除了ID为5和6的线程。线程标识98个74个3个2个1但是删除后有提交的时候,给那个线程的唯一id是10,不是5,我觉得这样不太整洁。如何在列中获得尽可能小的值?(在本例中为5。)我认为我可以使用MIN()获取列的最小值并保持+1直到我获得未使用的唯一值,但我认为这太复杂了

pg_auto_failover:一个业务连续性解决方案,高可用性和自动故障转移

转载自pg_auto_failover简介:高可用性和自动故障转移Postgres扩展在设计pg_auto_failover时,我们的目标是:为Postgres提供易于设置的业务连续性解决方案,该解决方案实现系统中任何一个节点的容错能力。重要的是要了解pg_auto_failover已针对业务连续性进行了优化。万一丢失单个节点,由于PostgreSQL同步复制,pg_auto_failover能够继续PostgreSQL服务,并在这样做时防止任何数据丢失。pg_auto_failover简介用于Postgres的pg_auto_failover解决方案旨在提供一种易于设置且可靠的自动化故障转移

mysql - 使用一个 SQL 查询进行 SELECT、UPDATE、DELETE?

我有一个递减值的小语句:UPDATEcart_itemsSETquantity=quantity-1WHEREcart_id={$cart_id}ANDid={$cart_item_id}但是如果该值在递减后变为0,SQL是否有可能删除该行?如果是这样,那么我想重新计算与该购物车匹配的行数:SELECTFROMcart_itemsWHEREcart_id={$cart_id}如果行数为零,我想从另一个表中删除该记录,如下所示:DELETEFROMcartWHEREid={$cart_id}目前似乎需要多个查询来执行此操作,但是否可以在单个SQL语句中完成所有操作?