Commit f30210392127860ea044795ff24a61be42f66cd2

Authored by Guilherme Andrade Del Cantoni
1 parent e9344a2d

Correção de instrução para alteração de nome de coluna no MySQL e SQLServer

Showing 2 changed files with 29 additions and 2 deletions   Show diff stats
bd/PenMetaBD.php
... ... @@ -178,6 +178,31 @@ class PenMetaBD extends InfraMetaBD {
178 178 }
179 179 }
180 180  
  181 + public function renomearColuna($strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova, $strTipo){
  182 +
  183 + if($this->isChaveExiste($strNomeColunaAtual)) {
  184 +
  185 + $objInfraBanco = $this->getObjInfraIBanco();
  186 + $strTableDrive = get_parent_class($objInfraBanco);
  187 + $strQuery = '';
  188 +
  189 + switch ($strTableDrive) {
  190 +
  191 + case 'InfraMySqli':
  192 + $strQuery = sprintf("ALTER TABLE `%s` CHANGE `%s` `%s` `%s`", $strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova, $strTipo);
  193 + break;
  194 +
  195 + case 'InfraSqlServer':
  196 + $strQuery = sprintf("SP_RENAME '%s'.'%s', '%s', 'COLUMN'", $strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova);
  197 +
  198 + case 'InfraOracle':
  199 + $strQuery = sprintf("ALTER TABLE '%s' RENAME COLUMN '%s' TO '%s'", $strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova);
  200 + break;
  201 + }
  202 +
  203 + $objInfraBanco->executarSql($strQuery);
  204 + }
  205 + }
181 206  
182 207 /**
183 208 * Verifica se uma tabela existe no banco
... ...
rn/PenAtualizarSeiRN.php
... ... @@ -824,12 +824,14 @@ class PenAtualizarSeiRN extends PenAtualizadorRN {
824 824 $objMetaBanco->adicionarColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO);
825 825 BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite set cadeia_certificado_temp = cadeia_certificado");
826 826 $objMetaBanco->excluirColuna('md_pen_recibo_tramite', 'cadeia_certificado');
827   - BancoSEI::getInstance()->executarSql("alter table md_pen_recibo_tramite rename column cadeia_certificado_temp to cadeia_certificado");
  827 + $objMetaBanco->renomearColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', 'cadeia_certificado', $strTipo);
  828 +
828 829  
829 830 $objMetaBanco->adicionarColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO);
830 831 BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite_enviado set cadeia_certificado_temp = cadeia_certificado");
831 832 $objMetaBanco->excluirColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado');
832   - BancoSEI::getInstance()->executarSql("alter table md_pen_recibo_tramite_enviado rename column cadeia_certificado_temp to cadeia_certificado");
  833 + $objMetaBanco->renomearColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', 'cadeia_certificado', $strTipo);
  834 +
833 835  
834 836 /* ---------- antigo método (instalarV005R003S005IW018) ---------- */
835 837 $objBD = new GenericoBD($this->inicializarObjInfraIBanco());
... ...