您的位置:首頁技術文章
文章詳情頁

mysql判斷表是否存在然后批量刪除的操作

瀏覽:90日期:2023-10-10 11:33:41

1、在網上找了許久都沒有找到判斷表是否存在,然后模糊刪除的。但是最后找到了一個曲線救國的方法。

需求:刪除表中后綴是 _待刪除 的表

1、第一步,找到所有的這樣的表,并且拼裝好刪除表的sql

Select CONCAT( ’DROP TABLE IF EXISTS ’, table_name, ’;’ ) FROM information_schema.tables Where table_name LIKE ’%_待刪除’;

執行結果

mysql判斷表是否存在然后批量刪除的操作

2、第二步:去一一執行刪除語句,有能力的可以去寫一個腳本執行什么的

3、sql解析

3-1 :concat 字符串拼接

3-2 :DROP TABLE IF EXISTS equi_accp_info__待刪除; --判斷這個表是否存在,如果存在就刪除

補充知識:mysql 判斷表字段是否存在,然后修改

我就廢話不多說了,大家還是直接看代碼吧~

-- 判斷 vrv_paw_rule 表是否存在 thresholdMin 字段,不存在則添加; 存在則修改字段類型DELIMITER ??DROP PROCEDURE IF EXISTS schema_change??CREATE PROCEDURE schema_change()BEGINIF NOT EXISTS (SELECT * FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = ’vrv_paw_rule’ AND column_name = ’thresholdMin’) THEN ALTER TABLE vrv_paw_rule ADD COLUMN thresholdMin BIGINT;ELSE ALTER TABLE vrv_paw_rule MODIFY COLUMN thresholdMin BIGINT ;END IF; END??DELIMITER ;CALL schema_change();

delimit命令:

就是告訴mysql解釋器,該段命令是否已經結束了,mysql是否可以執行了,即改變輸入結束符。

默認情況下,delimiter是分號“;”。

在命令行客戶端中,如果有一行命令以分號結束,

那么回車后,mysql將會執行該命令。

但有時候,不希望MySQL這么做。因為可能輸入較多的語句,且語句中包含有分號。

默認情況下,不可能等到用戶把這些語句全部輸入完之后,再執行整段語句。

因為mysql一遇到分號,它就要自動執行。

這種情況下,就可以使用delimiter,把delimiter后面換成其它符號,如//或$$。

此時,delimiter作用就是對整個小段語句做一個簡單的封裝。

此命令多用在定義子程序,觸發程序等mysql自己內嵌小程序中。

以上這篇mysql判斷表是否存在然后批量刪除的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
国产综合久久一区二区三区