草庐IT

delete-orphan

全部标签

mysql - 错误 1451 : 1451: Cannot delete or update a parent row: a foreign key constraint fails

我一直在寻找这个错误,偶然发现了几个性质相同的问题,但据我了解,他们似乎关心更新问题。我的源于删除条目。我的table是这样组成的:CREATETABLE`product`(`product_id`mediumint(8)unsignedNOTNULLAUTO_INCREMENTCOMMENT'representsuniqueidentifierforeveryexistingproducts',`code`varchar(20)NOTNULL,`name`varchar(45)NOTNULLCOMMENT'description',`price`decimal(11,4)NOTNUL

MySQL 中 Delete 使用

一、关于MySQL中Delete使用1.1Delete简介Delete是SQL中用于删除表格中记录的命令。通过使用Delete命令,您可以删除表格中的一行或多行记录,并将它们从表格中删除。在执行Delete命令时,务必保证所删除的数据符合表格中已有的约束条件,否则可能会引发不可预知的错误。1.2Delete的语法在MySQL中,Delete命令的基本语法如下:DELETEFROMtable_nameWHEREcondition;其中,table_name表示要删除记录的表格名称,WHERE关键字可以用于筛选出要删除的记录。Delete命令还可以使用特殊的语法实现一些高级功能,比如根据另一个表格

mysql - 级联删除,如 ON DELETE CASCADE 用于 MySQL 中的一次性操作

是否有某种神奇的SQL语句可以删除一行及其所有依赖项(由外键约束链接)WITHOUT更改表以添加ONDELETECASCADE或手动删除每个依赖行?我在幻想诸如DELETEFROM`table_a`WHERE`id`=1ONDELETECASCADE;但我似乎无法在文档@http://dev.mysql.com/doc/refman/5.5/en/delete.html中找到任何与此相关的内容我不想ALTER表来更改一次性操作的约束,然后使用另一个ALTER恢复它我不想为每个包含到table_a的外键的表执行类似DELETEFROM`table_b`WHERE`a_id`=1;的操作将

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 - 如何将此 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 - 使用一个 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语句中完成所有操作?

mysql - 无法使用 ON DELETE SET DEFAULT 创建外键

我无法使用ONDELETESETDEFAULT创建外键,但是如果我使用ONDELETECASCADE那么这里所有的工作都是我的sqlCREATETABLEperson(customer_idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(100)UNIQUE);CREATETABLEhabits(customer_idINTAUTO_INCREMENTPRIMARYKEY,habitVARCHAR(100)UNIQUE);INSERTINTO`test`.`habits`(`customer_id`,`habit`)VALUES(NULL,'smokin

mysql - SQL UPDATE 或 DELETE 如果重复

我正在尝试在我的数据库中运行3个查询:UPDATE`table`SET`rubriq`='77'WHERE`rubriq`='61';UPDATE`table`SET`rubriq`='77'WHERE`rubriq`='62';UPDATE`table`SET`rubriq`='77'WHERE`rubriq`='63';在table中,我有两列abonne和rubriq。Abonne是主键,两个是索引。如果在我的数据库中有例如:abonne|rubriq84|6184|6284|63当我运行3个查询时,第一个没有问题,但第二个出现错误:#1062-Duplicateentry'84