相关疑难解决方法(0)

如何从MySQL中的多个表中删除?

我试图一次从几个表中删除.我做了一些研究,想出了这个

DELETE FROM `pets` p,
            `pets_activities` pa
      WHERE p.`order` > :order
        AND p.`pet_id` = :pet_id
        AND pa.`id` = p.`pet_id`
Run Code Online (Sandbox Code Playgroud)

但是,我收到了这个错误

Uncaught Database_Exception [1064]:您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在'p,pets_activitiespa ... 附近使用正确的语法

我以前从来没有做过十字表删除,所以我现在没经验并且卡住了!

我究竟做错了什么?

mysql sql mysql-error-1064 sql-delete

109
推荐指数
3
解决办法
19万
查看次数

MySQL跨多个表删除

我正在开发一个cron脚本(在PHP PDS中用于MySQL数据库),它将从数据库中删除超过30天的数据.香港专业教育学院尝试加入和删除cascaded在我的表和语句,但他们没有成功,所以我采用更简单的方法来使它工作,但我知道这不是最有效的处理器方法.

请注意,其中一些表(尤其是链接表)有数十万行,这就是为什么我想要比我在这里更聪明一点.

表结构很简单,有一个表键表,有一个时间戳和一个id.该id在所有表中重复为tablekey_id.

我目前的cron工作如下.

/* Cron script to delete old data from the database. */
if (@include dirname(dirname(dirname(__FILE__))) . '/dbconn/website_connections.php') {
    $conn = $connectionFromOtherFile;
    $keyTable = 'table_key';
    $linksTable = 'links';
    $domainsTable = 'link_domains';
    $terms = 'searched_domains';

    $query = $conn->query("SELECT `id` FROM `$keyTable` WHERE `timestamp` < (NOW() - INTERVAL 30 DAY)");
    $query->setFetchMode(PDO::FETCH_ASSOC);

    while($row = $query->fetch()) {
        $conn->exec("DELETE FROM `$linksTable` WHERE `tablekey_id` = $row[id]");
        $conn->exec("DELETE FROM `$domainsTable` WHERE `tablekey_id` = $row[id]");
        $conn->exec("DELETE FROM `$terms` WHERE `tablekey_id` = $row[id]");
        $conn->exec("DELETE …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

2
推荐指数
1
解决办法
3427
查看次数

从一个语句中的两个表中删除

我希望能够从2个表中删除所有数据,其中user的id =给定的id.我正在使用Java,Derby DB,Netbeans 7.3 Beta 2和OS X Mountain Lion.

我有两张桌子(抱歉这个巨大的图像):

在此输入图像描述

这是我到目前为止的陈述:

String stmt2 = "DELETE FROM APP.PERSON JOIN APP.DATAVAULT WHERE PID = ?";                    
PreparedStatement ps2 = Main.getPreparedStatement(stmt2);
ps2 = conn.prepareStatement(stmt2);
ps2.setInt(1, user.getId());
ps2.executeUpdate();
System.out.println("Deleted");
Run Code Online (Sandbox Code Playgroud)

我不明白我如何从APP.DATAVAULT以及APP.PERSON中删除.正如您所看到的,APP.DATAVAULT中有一个外键,它是一个用户ID.

我尝试了很多东西,比如:

String stmt2 = "DELETE FROM APP.PERSON, APP.DATAVAULT WHERE PID = ?";
Run Code Online (Sandbox Code Playgroud)

String stmt2 = "DELETE FROM APP.PERSON AND APP.DATAVAULT WHERE PID = ?";
Run Code Online (Sandbox Code Playgroud)

我明白我必须使用外键从两者中删除,但我不知道如何.

java sql derby

1
推荐指数
1
解决办法
1391
查看次数

标签 统计

mysql ×2

sql ×2

derby ×1

java ×1

mysql-error-1064 ×1

pdo ×1

php ×1

sql-delete ×1