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