2017-07-18 4 views
1

À opencart2.0, je veux créer une extension ocmod, Dans install.sql, j'ai besoin de modifier le champ de base de données. Lorsque je modifie le champ de la base de données, je dois décider si le champ existe. J'ai essayé plusieurs variantes, mais aucune d'entre elles ne semble fonctionner. Des idées? Merci d'avance.À opencart2.0, je veux créer une extension ocmod. Dans install.sql, comment puis-je déterminer si le champ de base de données existe?

ceci est mon install.sql, mais est erreur

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(); 
+0

c'est mon install.sql, mais c'est une erreur. ** PROCEDURE DROP SI EXISTE add_col_need_credit; DELIMITER $$ CREATE PROCEDURE add_col_need_credit() COMMENCER SI NON EXISTE (SELECT nom_colonne FROM information_schema.columns WHERE nom_table = 'oc_customer_group_description' ET nom_colonne = 'need_credit') ALORS TABLEAU 'oc_customer_group_description' AJOUTER 'need_credit' numeric (10,4) NOT NULL par défaut 0; END IF; END $$ DELIMITER; CALL add_col_need_credit(); ** – vincenth520

+0

Mettez à jour votre question plutôt que de la commenter. – ASR

+0

Mis à jour, vous voyez, pense – vincenth520

Répondre

1

ce n'est pas erreur, vous pouvez dans la console mysql utiliser

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(); 
1
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();