mysql 判斷表字段是否存在,然后修改


 

-- ----------------------------
-- 判斷 vrv_paw_rule 表是否存在 thresholdMin 字段,不存在則添加; 存在則修改字段類型
DELIMITER ??
DROP PROCEDURE IF EXISTS schema_change??
CREATE PROCEDURE schema_change()
BEGIN
IF 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自己內嵌小程序中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM