2017-07-18 2 views
1

opencart2.0では、ocmod拡張を作成したいと思います。install.sqlでは、データベースフィールドを変更する必要があります。データベースフィールドを変更するとき、フィールドが存在するかどうかを判断する必要があります。 Iveはこれの複数のバリエーションを試しましたが、どれもうまくいかないようです。何か案は?前もって感謝します。これは私のinstall.sqlをですが、エラーopencart2.0では、ocmod拡張を作成したいと思います。 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(); 
+0

それを使用することができますそれは誤りです。 **存在する場合は削除手順add_col_need_credit; DELIMITER $$ CREATE PROCEDURE add_col_need_credit()は存在しない場合に開始します(SELECT column_name FROM information_schema.columns WHERE table_name = 'oc_customer_group_description' AND column_name = 'need_credit')その後、ALTER TABLE 'oc_customer_group_description' ADD' need_credit' ADD 'デフォルトは0です。 END IF; END $$ DELIMITER; CALL add_col_need_credit(); ** – vincenth520

+0

コメントではなく質問を更新してください。 – ASR

+0

更新されました – vincenth520

答えて

1

が、これはエラーではないです

することは、あなたはmysqlのコンソールで、これは私の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(); 
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(); 
関連する問題