MYSQL 刪除一個(gè)字段前判斷字段是否存在的辦法
開(kāi)發(fā)過(guò)程中經(jīng)常需要提交可以重復(fù)執(zhí)行的sql,當(dāng)設(shè)計(jì)到需要增加字段時(shí),可以參考如下辦法:
1.如果是mysql 版本高于5.7.5
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
2.通用方法
寫一個(gè)存儲(chǔ)過(guò)程,然后用存儲(chǔ)過(guò)程取執(zhí)行刪除字段,然后在腳本執(zhí)行完后,可以根據(jù)自己的實(shí)際情況選擇刪除掉存儲(chǔ)過(guò)程
--切換到指定的數(shù)據(jù) 根據(jù)自己的情況
use your_dbname;
-- 刪除存儲(chǔ)過(guò)程
DROP PROCEDURE IF EXISTS sp_delete_column_if_exists;
-- 創(chuàng)建存儲(chǔ)過(guò)程
DELIMITER $$
CREATE PROCEDURE `sp_delete_column_if_exists`(
IN `dbName` VARCHAR(255),
IN `tableName` VARCHAR(255),
IN `columnName` VARCHAR(255)
)
begin
SET @stmt = NULL;
SELECT
COUNT(*) INTO @stmt
FROM
information_schema.columns
WHERE
table_schema = dbName
AND table_name = tableName
AND column_name = columnName;
SELECT
COUNT(*)
FROM
information_schema.columns
WHERE
table_schema = dbName
AND table_name = tableName
AND column_name = columnName;
IF @stmt > 0 THEN
SET @drop_column = CONCAT('ALTER TABLE `', dbName, '`.`', tableName, '` DROP COLUMN `', columnName, '`;');
PREPARE drop_column FROM @drop_column;
EXECUTE drop_column;
DEALLOCATE PREPARE drop_column;
END IF;
END$$
DELIMITER ;
-- 調(diào)用存儲(chǔ)過(guò)程
call sp_delete_column_if_exists('your_db', 'your_table' , 'your_column');補(bǔ)充:mysql刪除語(yǔ)句-delete
一、刪除一條(一行)數(shù)據(jù)
delete from table where id='1'
注: 上述語(yǔ)句含義:刪除表名為table中id=1的一條數(shù)據(jù)
二、刪除整表數(shù)據(jù)
delete from table
注: 上述語(yǔ)句含義:刪除表名為table中所有數(shù)據(jù),但是不會(huì)刪除表結(jié)構(gòu)
ps:表結(jié)構(gòu)簡(jiǎn)單說(shuō)就是表字段。
小結(jié):
這是本系列第二篇,通過(guò)我自己碎片化的學(xué)習(xí),我知道在我進(jìn)行搜索的時(shí)候,急需的是一個(gè)可用的結(jié)果,無(wú)需全面廣泛的學(xué)習(xí)。所以本系列不展開(kāi)擴(kuò)展,用最少的圖文幫助急需使用命令的你。當(dāng)然,還是推薦能夠系統(tǒng)的學(xué)習(xí)一下sql知識(shí)。
到此這篇關(guān)于MYSQL 刪除一個(gè)字段前判斷字段是否存在的辦法的文章就介紹到這了,更多相關(guān)mysql判斷字段是否存在內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL INSERT INTO SELECT時(shí)自增Id不連續(xù)問(wèn)題及解決
這篇文章主要介紹了INSERT INTO SELECT時(shí)自增Id不連續(xù)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
MySQL中ON DUPLICATE KEY UPDATE語(yǔ)句的使用
INSERT INTO ... ON DUPLICATE KEY UPDATE?是一個(gè)強(qiáng)大的SQL語(yǔ)句,它結(jié)合了插入新記錄和更新已存在記錄的功能于一體,本文就來(lái)介紹一下MySQL中ON DUPLICATE KEY UPDATE語(yǔ)句的使用,感興趣的可以了解一下2024-08-08
CenOS6.7下mysql 8.0.22 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了CenOS6.7下mysql 8.0.22 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
mysql實(shí)現(xiàn)查詢數(shù)據(jù)并根據(jù)條件更新到另一張表的方法示例
這篇文章主要介紹了mysql實(shí)現(xiàn)查詢數(shù)據(jù)并根據(jù)條件更新到另一張表的方法,結(jié)合實(shí)例形式分析了mysql多表關(guān)聯(lián)查詢、更新等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
MySQL Innodb 存儲(chǔ)結(jié)構(gòu) 和 存儲(chǔ)Null值 用法詳解
這篇文章主要介紹了MySQL Innodb 存儲(chǔ)結(jié)構(gòu) 和 存儲(chǔ)Null值 用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
update.where無(wú)索引導(dǎo)致MySQL死鎖問(wèn)題解決
這篇文章主要為大家介紹了update.where無(wú)索引導(dǎo)致MySQL死鎖問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Java的Struts框架中的主題模板和國(guó)際化設(shè)置
這篇文章主要介紹了Java的Struts框架中的主題模板和國(guó)際化設(shè)置,Struts是Java的SSH三大web開(kāi)放框架之一,需要的朋友可以參考下2015-12-12
一起來(lái)了解mysql數(shù)據(jù)庫(kù)
大家好,本篇文章主要講的是一起來(lái)了解mysql數(shù)據(jù)庫(kù),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
MySQL 4G內(nèi)存服務(wù)器配置優(yōu)化
MySQL對(duì)于web架構(gòu)性能的影響最大,也是關(guān)鍵的核心部分。下面我們了解一下MySQL優(yōu)化的一些基礎(chǔ),MySQL自身(my.cnf)的優(yōu)化2017-07-07

