草庐IT

checked_delete

全部标签

MySQL 错误代码 : 1030Got error -1 from storage engine; I've tried to delete data from my database

我有一个包含一些表的数据库,当我想从包含“自动增量”字段的表中删除数据时,使用以下查询:deletefromtest.table1;我遇到了这个错误:ErrorCode:1030Goterror-1fromstorageengine为什么会这样?我该怎么办? 最佳答案 尝试更改innodb_force_recovery值(在您的/etc/my.cnf中)。Error-1表示什么都没有。没有您的表创建代码(SHOWCREATETABLEtable_name)无法说出问题的确切位置。 关于M

mysql - 绕过 DELETE 查询中的自引用

我正在尝试删除所有不是其名称下最新版本的记录,但显然您无法引用访问您正在同一查询中修改的表。我试过了,但由于上述原因它不起作用:DELETEFROMtableWHERECONCAT(name,version)NOTIN(SELECTCONCAT(name,MAX(version))FROMtableGROUPname)我该如何解决这个问题?干杯 最佳答案 Wraptheinnerreferenceinaderivedtable.DELETEFROMtableWHEREConcat(name,version)NOTIN(SELECTn

mysql - Liquibase 先决条件 : How do I check for a column being non-nullable?

我有一个数据库升级脚本来删除列上的非空约束。我想做一个先决条件检查,并且只在非空时调用ALTERTABLE。master.xml脚本是一个渐进式脚本,我不断添加脚本,整个脚本每次都会运行。在我的AlterTable脚本第一次运行后,我不希望它再次运行。无法为此找到预定义的前提条件,也无法编写sqlcheck。 最佳答案 可以用sqlCheck来完成。对于MySqlSELECTis_NullableFROMINFORMATION_SCHEMA.COLUMNSWHEREtable_name=''ANDcolumn_name=''对于甲骨

MySQL 命令行工具 : How to find out number of rows affected by a DELETE?

我正在尝试运行一个脚本,通过在循环中执行以下命令来批量删除MySQL(innodb)表中的一堆行:mysql--user=MyUser--password=MyPasswordMyDatabase其中SQL_FILE包含DELETEFROM...LIMITX命令。我需要继续运行这个循环,直到没有更多的匹配行。但与在mysqlshell中运行不同,上述命令不会返回受影响的行数。我试过-v和-t但都不起作用。如何找出批处理脚本影响了多少行?谢谢! 最佳答案 您可以在批处理脚本末尾添加SELECTROW_COUNT();。

sql - `Delete From Join` 是标准 SQL 吗?

在其他问题中,thisoneaskedhowtodeletefromajoin.我的问题:其中有多少是标准SQL?这实际上适用于哪些数据库(对我来说最值得注意的是Oracle、MySQL和SQLServer)? 最佳答案 不符合InternationalStandardISO/IEC9075:1992的标准第13.6节,第384-386页。使用JOIN语法删除在Oracle中不起作用。 关于sql-`DeleteFromJoin`是标准SQL吗?,我们在StackOverflow上找到一

mysql - 'SET foreign_key_checks = 1' 不再起作用

我正在与:mysql:stable5.6.22(bottled)MySQL工作台6.2我有以下顺序DROPTABLEIFEXISTSinvoicedetail;DROPTABLEIFEXISTSinvoiceheader;DROPTABLEIFEXISTSproduct;当我通过Java(JDBC)工作时失败并且通过MySQLWorkBench也失败,错误消息是关于FK子约束(我没有确切的错误消息),好吧谷歌我做了一项研究,我发现了两次相同的有效解决方案。Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfailsHowtotemp

mysql - 困境: Cascade delete or Join delete

这不是一个具体的问题,更像是一个普遍的疑惑。当您必须对1:M关系中的多个表进行删除时,使用级联删除进行FK约束还是在删除语句中连接表更好。我有一个旧项目,对相关表有单独的删除语句,有几次有些语句没有执行,数据完整性受到损害。我必须在两者之间做出决定,所以我在考虑什么是更好的解决方案。还有一个选项可以创建存储过程或事务。所以我正在寻求意见或建议...? 最佳答案 我会说使用级联删除更安全。如果您决定使用联接,则必须记住每次从父表中删除任何内容时都使用它们;即使你有足够的纪律来做到这一点,你也无法确定你的同事或将来会支持你的软件的人。此

mysql - 'SET foreign_key_checks = 0' 的范围是什么?

这个问题在这里已经有了答案:DoesMySQLforeign_key_checksaffecttheentiredatabase?(6个答案)关闭9年前。真的找不到任何细节,但是“SETforeign_key_checks=0”的范围是当前连接、当前session还是当前事务?

mysql - 确认 SET FOREIGN KEY CHECKS 设置为 = 1

我想使用phpmyadmin删除并重新创建同一个表。DROPTABLEIFEXISTS`product_entity`;CREATETABLE`product_entity`(......);我收到错误信息Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails然后我设置SETFOREIGN_KEY_CHECKS=0;DROPTABLEIFEXISTS`product_entity`;SETFOREIGN_KEY_CHECKS=1;CREATETABLE`product_entity`(......);我的问题是如何验证SETF

mysql - 是否可以使用 "delete from"语句合并两条记录?

我有一些连接到多个网络/VLAN(A、B和C)的联网设备,以及仅连接到其中一个网络的其他设备。当我删除或替换网络时,我需要更新我的数据库以反射(reflect)设备所连接的内容,因此我尝试编写一个mysql语句来执行此操作,但我遇到了各种障碍。我的表只有两个字段,不能有重复的记录。我的数据示例是deviceIDnetwork1A1B1C2B2C3A4A5B如何将网络A合并到网络B中,使上表看起来像...deviceIDnetwork1B1C2B2C3B4B5B我最初的尝试只是setnetwork='B'wherenetwork='A',然后是DELETEnetwork'A'语句,但这会