草庐IT

multi-table-delete

全部标签

mysql - MariaDB 崩溃 : Table doesn't exist in engine && can't recover tables

我在运行:MariaDB10.0.5Ubuntu12.04LTSBothuptothelatestpatchlevelasperlastFriday我对上一个问题陷入了困境:http://stackoverflow.com/questions/19910996/mysql-connect-headers-and-client-library-minor-version-mismatch-library10000这导致了大规模损坏,因为我复制并删除了我的ibdata1、ib_logfile0和ib_logfile1以解决上述问题的症状。我想,当我下次启动mariadb服务时,这个问题就开

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 - 是否加入另一张 table ?

基本上我有2个表。用户和users_activity。我使用mysql表,用户数将近5000。每个用户有很多事件,大约50-150个事件。当我想获取用户表列表(十乘十)时,我必须显示用户的上次事件日期。在这种情况下,我有两个选择:第一个选项:我将last_activity列添加到users表中,然后像这样选择:SELECT*FROMusersORDERBYidDESC,lIMIT0,10如果我想添加一个新事件:INSERTINTOusers_activity(userId,date)VALUES(19,"2016-04-06")UPDATEusersSETlast_activity="

mysql - 错误 1005 (HY000) 在第 244 行 : Can't create table './intranet2/dept.frm' (errno: 150)

我从生产中转储了一个数据库:mysqldump-u用户名-pintranet2>intranet2.sql进入开发服务器:mysql-u用户名-pintranet2我明白了:第244行的错误1005(HY000):无法创建表“./intranet2/dept.frm”(错误号:150)我试着把这个放在sql文件的开头:SETFOREIGN_KEY_CHECKS=0;但我仍然收到相同的消息。mysqldump应该能够重新创建数据库,否则我能相信谁是我的备份? 最佳答案 检查引擎是否为InnoDB。在这种情况下,您可以尝试将这些行放在转

mysql - 杀死 'copying to tmp table' 的复制 MySQL 进程是否安全?

我在主MySQL(5.0,Linux)服务器上遇到问题:我试图向表行添加注释,这会转换为ALTERTABLE命令。现在该过程停留在“复制到tmp表”上,复制了100'000'000+行。磁盘IO使用率高得令人不安。由于master正在使用复制,我不确定我是否可以终止这个进程。从站还没有看到ALTERTABLE命令。(为了清楚起见:我说的是从MySQL-PROCESSLIST中终止进程,而不是MySQL-Daemon-process本身。) 最佳答案 是的,你可以杀死它——在事务提交之前,ALTER不会进入二进制日志,即,直到ALTE

mysql - 在使用 MyISAM 的 MySQL 中的 REPAIR TABLE 期间什么会导致数据丢失?

REPAIRTABLE的MySQL文档指出Itisbesttomakeabackupofatablebeforeperformingatablerepairoperation;undersomecircumstancestheoperationmightcausedataloss.Possiblecausesincludebutarenotlimitedtofilesystemerrors.我想知道除了文件系统错误之外是否还有其他原因导致数据丢失。有人在野外见过这种情况吗?如果没有文件系统错误,修复丢失数据的可能性有多大?我的具体情况如下。我有运行Solaris10(SPARC)的Su

php - 为具有 Multi-Tenancy 架构的 SaaS PHP/mysql 应用程序使用单个或多个 mysql 用户

我们正在构建一个多用户应用程序,每个客户都有一个数据库。所有客户数据库结构都是相同的。现在我们正在生成一个新的mysql用户(每个客户端),它只有在自己的数据库上工作的权限。例如mysqluser1对dbase1.*(database1.alltables)有权限,mysqluser2对dbase2.*有权限。我们现在注意到,将文件转储到另一台服务器作为备份已经很痛苦了(我们不使用复制,但尝试偶尔转储文件,但无法从sql文件中删除和重新创建information_schema数据库看来。无论如何,我们想知道只使用一个可以访问所有客户端数据库的用户是否会更好?这更不安全吧?还是可以以一种

MYSQL语句快速select group from n :n table

我有一个n:n的数据集(例如,'程序员'和'语言'。程序员用多种语言编写代码,而一种语言可以被许多程序员使用)。此数据在表programmers_languages中我如何快速选择使用一组语言编写代码的程序员?如果这令人困惑,请提供更多信息:Jon使用C++、Pascal和Ruby编写代码。Joe使用C++和Ruby编写代码。Ruby和Pascal中的萌代码。Steve使用C++和Pascal编写代码。如果所讨论的语言集是C++和Pascal,我希望Jon和Steve不在这个列表中。请注意,这个集合的大小可能会变得非常大,所以我不想将表与其自身连接n次。 最

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 查询 : Speed up for huge tables

我们有一个包含大约25,000,000行的表,称为“事件”,具有以下架构:TABLEevents-campaign_id:int(10)-city:varchar(60)-country_code:varchar(2)以下查询需要很长时间(>2000秒):SELECTCOUNT(*)AScounted_events,country_codeFROMeventsWHEREcampaign_id`in(597)GROUPYBYcity,country_codeORDERBYcounted_events我们发现这是因为GROUPBY部分。(campaign_id,city,country_c