コード例 #1
0
function drop_views(&$dbHandler, $dbItemPrefix, $dbType)
{
    $schema = tlObjectWithDB::getDBViews();
    // views present on target db
    $my_ado = $dbHandler->get_dbmgr_object();
    $itemsOnDB = $my_ado->MetaTables('VIEWS');
    if (count($itemsOnDB) > 0 && isset($itemsOnDB[0])) {
        echo "<br />Dropping all TL existent views:<br />";
        foreach ($schema as $itemPlainName => $itemFullName) {
            $target = $dbItemPrefix . $itemPlainName;
            if (in_array($itemTable, $itemsOnDB)) {
                // Need to add option (CASCADE ?) to delete dependent object
                echo "Droping {$target}" . "<br />";
                $sql = "DROP VIEW {$target}";
                $sql .= $dbType != 'mssql' && $dbType != 'sqlsrv' ? " CASCADE " : ' ';
                $dbHandler->exec_query($sql);
            }
        }
        echo "<span class='ok'>Done!</span>";
    }
}