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