Commit f30210392127860ea044795ff24a61be42f66cd2
1 parent
e9344a2d
Exists in
master
and in
3 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()); | ... | ... |