如果表存在,则删除表中的记录。
当需要删除一个表中的记录时,如果该表存在,你将需要依赖一个自定义的存储过程来实现。类似于以下的代码:
-- 定义存储过程
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 //
-- 调用存储过程
CALL delete_if_exists("mytable");
CALL delete_if_exists("myothertable");
你可以根据自己的需要调整"DELETE FROM",...
的部分。
参考示例:http://sqlfiddle.com/#!2/2ee190/3
以上就是如果删除表中的记录,同时确保表存在的问题的解决方法。
如果表存在,则从表中删除记录的原因是,用户不想删除整个表,只想删除表中的记录。
解决方法是,在执行删除命令之前,在表上使用IF EXISTS语句进行判断。下面是一个示例代码:
IF EXISTS(SELECT table.records FROM table WHERE ...) DELETE records_names FROM ...
如果在这里的"select query here"中判断表存在,然后再执行删除操作。这样可以确保只删除表中的记录而不删除整个表。
在这篇文章中有更多的示例。
用户想要从表中删除记录,而不是删除整个表。为了实现这个目的,可以在删除命令之前使用IF EXISTS语句来判断表是否存在。这样可以确保只删除表中的记录而不删除整个表。