public function retorna($valor, $fase, $condicao, $estrutura) { $schema = $estrutura[EstruturaQuery::SCHEMA]; $tabela = $estrutura[EstruturaQuery::TABELA]; $coluna = $estrutura[EstruturaQuery::COLUNA]; $sequences = $estrutura[EstruturaQuery::SEQUENCE]; GerenciadorSequence::sobreCarregaCriados($sequences); $sequences = GerenciadorSequence::getCriados(); $string = ""; if (isset($valor)) { if (substr($valor, 0, strlen("nextval('")) == "nextval('" && $fase != FaseQuery::CREATE) { $fimSequence = strpos($valor, "':") - strlen("nextval('"); $sequence = substr($valor, strlen("nextval('"), $fimSequence); if ($schema == "public") { $sequence = "public." . $sequence; } if (isset($sequences)) { if (!in_array($sequence, $sequences)) { GerenciadorSequence::adicionaCriados($sequence); $createSequence = "\n\n-------------------- CREATE DA SEQUENCE --------------------"; $createSequence .= "\nCREATE SEQUENCE {$sequence};"; GerenciadorSequence::adicionaQueryCriado($createSequence); $setSequence = "\n\n-------------------- SET DA SEQUENCE --------------------"; $setSequence .= "\nSELECT setval('{$sequence}', MAX({$coluna})) FROM {$tabela};"; GerenciadorSequence::adicionaQuerySetado($setSequence); } else { $setSequence = "\n\n-------------------- SET DA SEQUENCE --------------------"; $setSequence .= "\nSELECT setval('{$sequence}', MAX({$coluna})) FROM {$tabela};"; GerenciadorSequence::adicionaQuerySetado($setSequence); } } } switch ($fase) { case FaseQuery::CREATE: $string = " DEFAULT {$valor} "; break; case FaseQuery::ADD: $string = "\n\tDEFAULT {$valor} "; break; case FaseQuery::ALTER: $string = "\nALTER TABLE {$tabela} ALTER COLUMN {$coluna} DROP DEFAULT;"; $string .= "\nALTER TABLE {$tabela} ALTER COLUMN {$coluna} SET DEFAULT {$valor};"; break; default: break; } return $string; } }
public function createTable() { $empresa = $this->estrutura[EstruturaQuery::COMPANY]; $schema = $this->estrutura[EstruturaQuery::SCHEMA]; $sequence = $this->estrutura[EstruturaQuery::SEQUENCE]; $tabelas = $this->diff_dev_homologQuery(); $colunas = array(); $stringResult = "\n\n-------------------- CREATE TABLE --------------------"; if (!empty($tabelas)) { foreach ($tabelas as $tabela) { $string = "\n\nCREATE TABLE {$tabela}"; $string .= "\n(\n"; $colunaBO = new ColunaBO($empresa, $schema, $tabela, $sequence); $string .= $colunaBO->createColumn(); $string .= "\n);"; $stringResult .= GerenciadorSequence::getQueryCriado() . $string . GerenciadorSequence::getQuerySetado(); $string = ""; } return $stringResult; } }
public function resetSeqGerenciamento() { GerenciadorSequence::resetCriados(); GerenciadorSequence::resetQueryCriado(); GerenciadorSequence::resetQuerySetado(); }
<?php class GerenciadorSequence { public static $criado = array(); public static $setado = array(); } class Teste { public function adicionar($valor) { GerenciadorSequence::$criado[] = $valor; } } $teste = new Teste(); $teste->adicionar("dfs"); $teste->adicionar("sfdsf"); echo "<pre>"; print_r(GerenciadorSequence::$criado); echo "</pre>"; $teste->adicionar("dfs"); $teste->adicionar("sfdsf"); echo "<pre>"; print_r(GerenciadorSequence::$criado); echo "</pre>"; GerenciadorSequence::$criado = array_unique(GerenciadorSequence::$criado); echo "<pre>"; print_r(GerenciadorSequence::$criado); echo "</pre>";
public function alterTable() { $empresa = $this->estrutura[EstruturaQuery::COMPANY]; $schema = $this->estrutura[EstruturaQuery::SCHEMA]; $sequence = $this->estrutura[EstruturaQuery::SEQUENCE]; //$user = $this->estrutura[EstruturaQuery::USER]; $fase = FaseQuery::ALTER; $tabelas = $this->intersect_homolog_devQuery(); $colunas = array(); $stringResult = "\n\n\n------------------------------ ALTER TABLE ------------------------------"; $string = ""; if (!empty($tabelas)) { foreach ($tabelas as $tabela) { $colunaBO = new ColunaBO($empresa, $schema, $tabela, $sequence, $fase); $string .= $colunaBO->dropColumn(); $string .= $colunaBO->addColumn(); $string .= $colunaBO->alterColumn(); $indiceBO = new IndiceBO($empresa, $schema, $tabela); $string .= $indiceBO->dropIndice(); $string .= $indiceBO->createIndex(); $constraintBO = new ConstraintBO($empresa, $schema, $tabela, $fase); $string .= $constraintBO->dropConstraint(); $string .= $constraintBO->addConstraint(); $triggerBO = new TriggerBO($empresa, $schema, $tabela); $string .= $triggerBO->dropTrigger(); $string .= $triggerBO->createTrigger(); $stringResult .= GerenciadorSequence::getQueryCriado() . $string . GerenciadorSequence::getQuerySetado(); $string = ""; } return $stringResult . $string; } }
public static function resetCriados() { self::$criados = array(); }