[MySQL] error 1093 多表删除错误
发布日期:2021-05-09 21:36:40 浏览次数:13 分类:精选文章

本文共 2317 字,大约阅读时间需要 7 分钟。

MySQL ���������������������������������������������

��������� MySQL ���������������������������������������������������������������������������������������������������������������������������������������������������������


������01���������������������

������������������������������������

mysql> delete from t where t.id in (select t.id from t where t.id > 5);
1093 - You can't specify target table 't' for update in FROM clause

������������������ DELETE ��������������������������������� t ������������������������������������������������ SQL ������������������������������������������������������

��������������������������� SQL������ IN ������������������������������������������������������������������������������������������ DELETE ���������������������������������������


02. ������������������ SQL

��������������������������� SQL���

mysql> delete t from t join t b on b.id = t.id where b.id > 4;

������������������������������������������������ t ������������������������������ JOIN ������������������ t���������������������������������������������������������������������������������������


������������������������

������������������������������������������������������

  • ��������� DELETE ���������������������������������������������������������������������������
  • ������ JOIN ���������������������������������������������
  • ���������������������������������������

    -- ��������������� t1 ���������
    DELETE t1 FROM t1 JOIN t2 ON t2.ref = t1.id WHERE t1.id = 1;
    -- ��������������� t1 ��� t2 ���������
    DELETE t1, t2 FROM t1 JOIN t2 ON t2.ref = t1.id WHERE t1.id = 1;

    ������������������������

    ��� t ������������������

    CREATE TABLE `t` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

    ���������������

    INSERT INTO `demo`.`t`(`id`) VALUES (1);
    INSERT INTO `demo`.`t`(`id`) VALUES (2);
    INSERT INTO `demo`.`t`(`id`) VALUES (3);
    INSERT INTO `demo`.`t`(`id`) VALUES (4);
    INSERT INTO `demo`.`t`(`id`) VALUES (5);
    INSERT INTO `demo`.`t`(`id`) VALUES (6);
    INSERT INTO `demo`.`t`(`id`) VALUES (7);
    INSERT INTO `demo`.`t`(`id`) VALUES (8);

    ������������

    • ������������������������������������������������������������
    • ��������� DELETE ������������������ t ���������������������������������������������
    • ������ INNER JOIN ��� LEFT JOIN���������������������������������
    上一篇:[MySQL] error 1292 数据类型错误
    下一篇:从n个不同元素中取出m个元素排列组合

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月27日 07时18分25秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章