mysql存儲過程遇到ERROR 1060 (42S21):Duplicate column問題及解決方案
問題描述
實(shí)際的日常開發(fā)工作中,經(jīng)常需要對現(xiàn)有表的結(jié)構(gòu)作出變更,涉及到sql相關(guān)的操作,基本都通過初始化腳本來完成,如果初始化腳本運(yùn)行失敗或者遇到其他問題,可能導(dǎo)致sql部分執(zhí)行,不分失敗的問題,從而造成這個(gè)ERROR 1060 (42S21): Duplicate column的問題
問題的解決
方法一:在初始化腳本中添加判斷,對于ERROR 1060 (42S21): Duplicate column可以容忍的錯(cuò)誤直接跳過繼續(xù)執(zhí)行
方法二:通過存儲過程來實(shí)現(xiàn):
- 相關(guān)sql如下:
drop procedure if exists add_col_b; delimiter ';;'; create procedure add_col_b() begin if not exists( select * from information_schema.`COLUMNS` where TABLE_NAME='t2' and COLUMN_NAME='b') then set names utf8; alter table t2 add b int DEFAULT 0 COMMENT ''; end if; end;; delimiter ';'; call add_col_b(); drop procedure if exists add_col_b;
- 具體操作效果:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql8.0使用PXC實(shí)現(xiàn)高可用的示例(Rocky8.0環(huán)境)
本文主要介紹了在Rocky8.0環(huán)境下搭建MySQL8.0的Percona XtraDB Cluster(PXC)集群,,可以實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)同步、讀寫分離和高可用性,具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02Linux利用UDF庫實(shí)現(xiàn)Mysql提權(quán)
根據(jù)MySQL函數(shù)族的可擴(kuò)展機(jī)制,意味著用戶可以自己建立包含有自定義函數(shù)的動態(tài)庫來創(chuàng)建自定義函數(shù),簡稱udf2014-07-07MySQL錯(cuò)誤提示:sql_mode=only_full_group_by完美解決方案
有時(shí)候遇到數(shù)據(jù)庫重復(fù)數(shù)據(jù),需要將數(shù)據(jù)進(jìn)行分組,并取出其中一條來展示,這時(shí)就需要用到group by語句,下面這篇文章主要給大家介紹了關(guān)于MySQL錯(cuò)誤提示:sql_mode=only_full_group_by的完美解決方案,需要的朋友可以參考下2022-10-10MySQL算術(shù)/比較/邏輯/位/運(yùn)算符與正則舉例詳解
每種數(shù)據(jù)庫都支持SQL語句,但是它們也都有各自支持的運(yùn)算符,下面這篇文章主要給大家介紹了關(guān)于MySQL算術(shù)/比較/邏輯/位/運(yùn)算符與正則的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02MySQL8.0移除傳統(tǒng)的.frm文件原因及解讀
MySQL 8.0移除傳統(tǒng)的.frm文件,采用基于InnoDB的事務(wù)型數(shù)據(jù)字典,主要解決了元數(shù)據(jù)不一致、性能優(yōu)化、架構(gòu)簡化、增強(qiáng)功能支持、兼容性與升級問題,這一變革提高了數(shù)據(jù)庫的可靠性和性能,為未來的高級功能奠定了基礎(chǔ)2025-03-03Mysql數(shù)據(jù)庫報(bào)錯(cuò)2003?Can't?connect?to?MySQL?server?on?
最近在用mysql,打開mysql的圖形化界面要連接時(shí)出現(xiàn)2003錯(cuò)誤,所以下面這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫報(bào)錯(cuò)2003?Can't?connect?to?MySQL?server?on?'localhost'?(10061)的解決方式,需要的朋友可以參考下2022-09-09