creating views

This commit is contained in:
anatoly 2023-03-31 18:09:34 +03:00
parent 7c0a5ab310
commit 93c0a67241

View file

@ -4,7 +4,7 @@ namespace ctiso\Database;
use ctiso\Database, use ctiso\Database,
ctiso\Tools\SQLStatementExtractor, ctiso\Tools\SQLStatementExtractor,
ctiso\Path, ctiso\Path,
Exception; Exception;
class Manager class Manager
{ {
@ -35,6 +35,9 @@ class Manager
case "renameColumn": case "renameColumn":
$this->RenameColumn($action["table"], $action["old_name"], $action["new_name"]); $this->RenameColumn($action["table"], $action["old_name"], $action["new_name"]);
break; break;
case "createView":
$this->recreateView($action["view"], $action["select"]);
break;
case "executeFile": case "executeFile":
if ($this->db->isPostgres() && isset($action["pgsql"])) { if ($this->db->isPostgres() && isset($action["pgsql"])) {
$file = $action["pgsql"]; $file = $action["pgsql"];
@ -53,6 +56,12 @@ class Manager
} }
} }
//Дропает и создаёт SQL VIEW
public function recreateView($viewName, $selectStatement) {
$this->db->query("DROP VIEW ".$viewName);
$this->db->query("CREATE VIEW ".$viewName." AS ".$selectStatement);
}
public function DropTableQuery($table, $cascade=false) { public function DropTableQuery($table, $cascade=false) {
$statement = "DROP TABLE IF EXISTS ".$table; $statement = "DROP TABLE IF EXISTS ".$table;
if ($this->db->isPostgres()&&$cascade) { if ($this->db->isPostgres()&&$cascade) {