gpt4 book ai didi

mysql - 如果表存在,则从表中删除记录

转载 作者:可可西里 更新时间:2023-11-01 08:18:18 25 4
gpt4 key购买 nike

我有很多删除查询,但在某些生产数据库中找不到某些表。我需要对这个问题做出简单的决定。

类似的查询

DELETE b.* FROM `table` b
JOIN `another_table` u
ON u.key2 = b.key
WHERE u.key3 <> ?

我需要这样的东西:

IF TABLE `table` EXISTS DELETE b.* FROM `table` b ...

最佳答案

如果您需要删除表中的行(如果后者存在),我认为您将不得不依赖自定义存储过程。类似的东西:

-- Define the procedure
CREATE PROCEDURE delete_if_exists(IN tbl CHAR(80))
BEGIN
IF @tbl IN (select table_name from information_schema.tables where table_schema = "db_2_44afb7")
THEN
SET @query = CONCAT("DELETE FROM ", @tbl);
PREPARE stmt FROM @query;
EXECUTE stmt;
END IF;
END //

-- use it
CALL delete_if_exists("mytable");
CALL delete_if_exists("myothertable");

参见 http://sqlfiddle.com/#!2/2ee190/3例如。
当然,您可以调整 "DELETE FROM",... 部分以满足您的特定需求。

关于mysql - 如果表存在,则从表中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com