草庐IT

delete-row

全部标签

mysql - 如何绕过 'ON DELETE SET DEFAULT' 不被接受?

我会尝试解释我的情况。我有一张“员工”表。我有一个“部门”表,其中有一个“DepHead”列引用了一个“EmployeeID”。我希望能够删除Employees而不删除他们是负责人的任何部门。我不能使用ONDELETESETNULL,因为“DepHead”列设置为NOTNULL并且必须如此。它的默认值为“1”,所以如果可能的话,如果引用的employeeID被删除,我希望将“DepHead”值更改为“1”。有没有办法做到这一点? 最佳答案 按顺序执行以下操作:设置一个命名约束,这样DBMS就不会设置一个难以跟踪的随机约束:ALTER

sql - 从最好的行中返回随机行(即 : 100 rows -> best 10 -> get 5 random)

情况:一张有很多照片、分类和投票的表格。我目前正在这样做:SELECTn.nid,n.title,.......orderbyv.valuedesclimit0,5我想要的是在按选票对我的行进行排序之后获得一个随机结果集。现在,一个包含数百条记录的表为我提供了最好的5行。总是相同的5。这是相当重复的,但当然随机给出5行并不是最好的选择,因为并非所有行都有高质量的照片。有些可能不太好。我不想只是这样做:SELECTn.nid,......orderbyRAND()limit0,5我正在寻找的是这样的:SELECTn.nid,.....orderbyRAND(v.valuedesclimi

php - 在 MySql 中加入 DELETE?如何?

我有这个:$query="DELETEFROMclassified,$sql_tableWHEREclassified.ad_id='$id'ANDclassified.classified_id=$sql_table.classified_idANDclassified.poster_password='$pass'";我收到此错误:您的SQL语法有误;查看与您的MySQL服务器版本对应的手册,了解在第1行的“WHEREclassified.ad_id='Bmw_M3_E46_Full_29920'ANDclassified.cla'附近使用的正确语法有什么帮助吗?如您所见,$sql

MySql Performance : INSERT. ..ON DUPLICATE KEY UPDATE 或 UPDATE & ROW_COUNT

我查询大部分时间都会更新现有记录。但是,我需要检查此记录是否存在,如果不存在,我应该创建它。通常我会使用INSERT...ONDUPLICATEKEYUPDAT,但由于只需要插入几个查询,我正在考虑执行UPDATE并稍后检查如果返回的ROW_COUNT()为零,并且在这种情况下执行INSERT。什么会给我最好的表现? 最佳答案 MySQL有一个REPLACEINTO语法,这可能就是您正在寻找的。如果这对您不起作用,使用UPDATE并检查ROW_COUNT()应该可行,您可能希望将整个事情包装在存储过程中,这样您就可以节省返回服务器的

PHP 或 MYSQL : how to group results by ROW?

我正在使用mysql这些是我的tableD----------id,name----------1,d12,d23,d3t----------id,name----------1,t12,t23,t3c----------id,d_id,t_id----------1,1,11,1,21,1,31,2,11,2,21,2,31,3,11,3,21,3,3我想产生一个查询来得到这样的结果-------------------------------------------d.name,t.name,t.name,t.name--------------------------------

mysql_affected_rows 有时返回 0 而不是 1

我对php脚本有一个奇怪的问题-mysql_affected_rows()有时会无缘无故地返回“0”。有一个类似的问题@stackoverflow,这个问题的答案是:如果更新前后存在明显差异,MySQL只会实际更新一行。但这不是我的情况。例如,如果更新前的值为1320402744并且更新后的值为1320402944mysql_affected_rows()无论如何都会返回“0”。这种差异还不够明显吗?下面是3个文件。如您所见,所有文件都包含调用函数“online()”的文件“functions.inc.php”。文件“login.php”工作正常。它会在“session”表中正确插入一

尽管缺少子查询,但 MySQL 更新错误为 "Subquery returns more than 1 row"

我有一个关于mysql5.1.56的查询:select*fromteam_member_accountswherenode=33136...正好返回一行。但是,以下查询错误Subqueryreturnsmorethan1row:updateteam_member_accountssetfee_remaining=0,loan_account_balance=35000,reimbursable_amount=0,reimbursed_amount=0wherenode=33136嗯……什么?什么子查询?怎么超过一排? 最佳答案 该表

php - MySQL "Fire-And-Forget"INSERT/UPDATE/DELETE - mysql_unbuffered_query 用法是否可取?

我们有很多我们认为是“即发即弃”的查询。从某种意义上说,这些只是记录插入、更新等。不那么重要的事情,以及从未在用户看到的前端使用的数据。这听起来像是mysql_unbuffered_query的理想情况。这是否可取?我们正在使用innodb,因此无法使用INSERTDELAYED之类的东西。谢谢! 最佳答案 看完http://www.php.net/manual/en/mysqlinfo.concepts.buffering.php:Followingthesecharacteristicsbufferedqueriesshould

mysql - deleted_at 列的 SQL 索引

在SQL数据库的deleted_at列上添加索引是最佳实践还是有益的?我的很多查询都使用WHEREdeleted_atISNULL,添加deleted_at索引会加快我的查询速度还是减慢它们的速度? 最佳答案 @Barmar最好地回答了这个问题:“你是否应该索引它取决于它对你的表进行分区的程度。如果大多数行没有被删除,索引它不会有太大帮助。此外,如果你有其他列索引,并且你一起测试它们使用deleted_at,那么您将需要使用deleted_at的其他列的复合索引才能获得好处。” 关于my

php - 使用删除按钮从数据库中删除记录

我有一个包含书籍的数据库。在一个页面上,我有一个循环打印数据库中的每条记录,其中包括每本书的标题、作者、出版商、日期和评级。我想在每条记录的底部使用一个删除按钮来删除它。当我点击删除按钮时,页面更新了,但记录没有被删除。我试图找到解决这个问题的办法,但还没有找到。我试图使用我的数据库表中的book_id类别作为我的索引,以便识别每条记录并将其删除,但它不起作用。这是我的按钮表单的代码,它与html代码一起出现:while($row=mysqli_fetch_array($result)){echo'';$timestamp=strtotime($row['date']);echo'';