На opencart2.0 я хочу создать расширение ocmod. В install.sql как определить, существует ли поле базы данных?

На opencart2.0 я хочу создать расширение ocmod. В install.sql мне нужно изменить поле базы данных. Когда я изменяю поле базы данных, мне нужно решить, существует ли поле. Я пробовал несколько вариантов этого, но ни один из них, кажется, не работает. Есть идеи? Заранее спасибо.

это мой install.sql, но это ошибка

DROP PROCEDURE IF EXISTS add_col_need_credit; 
DELIMITER $$ CREATE PROCEDURE add_col_need_credit() BEGIN IF NOT EXISTS(SELECT column_name FROM information_schema.columns WHERE table_name='oc_customer_group_description' AND column_name='need_credit' ) THEN ALTER TABLE  `oc_customer_group_description`  ADD  `need_credit` numeric(10,4) NOT NULL default 0; END IF;END$$ DELIMITER ; 
CALL add_col_need_credit();

2 ответа

Решение

Это не ошибка, вы можете в консоли MySQL использовать его

DROP PROCEDURE IF EXISTS add_col_need_credit; 
DELIMITER $$ CREATE PROCEDURE add_col_need_credit() BEGIN IF NOT EXISTS(SELECT column_name FROM information_schema.columns WHERE table_name='oc_customer_group_description' AND column_name='need_credit' ) THEN ALTER TABLE  `oc_customer_group_description`  ADD  `need_credit` numeric(10,4) NOT NULL default 0; END IF;END$$ DELIMITER ; 
CALL add_col_need_credit();
DROP PROCEDURE IF EXISTS add_col_need_credit; 
DELIMITER $$ CREATE PROCEDURE add_col_need_credit() BEGIN IF NOT EXISTS(SELECT column_name FROM information_schema.columns WHERE table_name='oc_customer_group_description' AND column_name='need_credit' ) THEN ALTER TABLE  `oc_customer_group_description`  ADD  `need_credit` numeric(10,4) NOT NULL default 0; END IF;END$$ DELIMITER ; 
CALL add_col_need_credit();
Другие вопросы по тегам