delimiter 與 存儲過程
阿新 • • 發佈:2018-10-27
字段 alter mys mon 提示 version check pan respond
1.如此執行語句不行,需要在 delimiter
IF not EXISTS ( SELECT * FROM information_schema. COLUMNS WHERE table_schema = ‘thc_rcm‘ AND table_name = ‘Cs_AccountBillDetail‘ AND column_name = ‘shopSetItemId‘ ) THEN ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT ‘套餐的訂單明細ID‘ AFTER `itemId`; END IF;
2.這樣寫也不行,因為這樣的語句必須在存儲過程裏執行
DELIMITER // IF not EXISTS ( SELECT * FROM information_schema. COLUMNS WHERE table_schema = ‘thc_rcm‘ AND table_name = ‘Cs_AccountBillDetail‘ AND column_name = ‘shopSetItemId‘ ) THEN ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail` ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT ‘套餐的訂單明細ID‘ AFTER `itemId`; END IF; END// DELIMITER ;
3.OK
DELIMITER // CREATE PROCEDURE thc_rcm_change () BEGIN IF not EXISTS ( SELECT * FROM information_schema. COLUMNS WHERE table_schema = ‘thc_rcm‘ AND table_name = ‘Cs_AccountBillDetail‘ AND column_name = ‘shopSetItemId‘ ) THEN ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail` ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT ‘套餐的訂單明細ID‘ AFTER `itemId`; END IF; END// DELIMITER ; CALL thc_rcm_change (); DROP PROCEDURE IF EXISTS thc_rcm_change;
4.將添加字段變為刪除字段則執行不通過,待解???????????
DELIMITER // CREATE PROCEDURE thc_rcm_change () BEGIN IF not EXISTS ( SELECT * FROM information_schema. COLUMNS WHERE table_schema = ‘thc_rcm‘ AND table_name = ‘Cs_AccountBillDetail‘ AND column_name = ‘shopSetItemId‘ ) THEN ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail` drop COLUMN shopSetItemId; END IF; END// DELIMITER ; CALL thc_rcm_change (); DROP PROCEDURE IF EXISTS thc_rcm_change;
錯誤提示
Query execution failed
原因:
SQL 錯誤 [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘) THEN
ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail` drop column setMealDetai‘ at line 1
Query execution failed
delimiter 與 存儲過程