Commit f30210392127860ea044795ff24a61be42f66cd2
1 parent
e9344a2d
Exists in
master
and in
21 other branches
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,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 | * Verifica se uma tabela existe no banco | 208 | * Verifica se uma tabela existe no banco |
rn/PenAtualizarSeiRN.php
@@ -824,12 +824,14 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { | @@ -824,12 +824,14 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { | ||
824 | $objMetaBanco->adicionarColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); | 824 | $objMetaBanco->adicionarColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); |
825 | BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite set cadeia_certificado_temp = cadeia_certificado"); | 825 | BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite set cadeia_certificado_temp = cadeia_certificado"); |
826 | $objMetaBanco->excluirColuna('md_pen_recibo_tramite', 'cadeia_certificado'); | 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 | $objMetaBanco->adicionarColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); | 830 | $objMetaBanco->adicionarColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); |
830 | BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite_enviado set cadeia_certificado_temp = cadeia_certificado"); | 831 | BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite_enviado set cadeia_certificado_temp = cadeia_certificado"); |
831 | $objMetaBanco->excluirColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado'); | 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 | /* ---------- antigo método (instalarV005R003S005IW018) ---------- */ | 836 | /* ---------- antigo método (instalarV005R003S005IW018) ---------- */ |
835 | $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); | 837 | $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); |