가상 테이블 VIEW의 일부분만 업데이트하는 방법은 없습니다. 하지만 기존의 가상 테이 블 조건 전체로 덮어쓰기 형태로 업데이트할 수 있습니다.

| 쿼리 문법 |

CREATE OR REPLACE VIEW view_name AS SELECT column1, column2,  FROM table_name WHERE condition; 

CREATE 를 통하여 VIEW를 생성할 때 OR REPLACE 키워드를 함께 사용하면 기존의 생 성된 view를 덮어쓰기 하여 업데이트할 수 있습니다.

21.5.1 쿼리 실습

다음과 같은 예로 VIEW 테이블을 업데이트하는 쿼리를 작성할 수 있습니다.

| 예제 쿼리 |

CREATE OR REPLACE VIEW [Current Product List] AS SELECT ProductID, ProductName, Category FROM Products WHERE enable = on; 

21.5.2 PHP 실습

PHP 코드를 통하여 실습해 봅니다.

| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.

public function updateView($view, $selectQuery)
{
            if ($view) {
                if ($selectQuery) {
                    $queryString = "CREATE OR REPLACE VIEW $view AS $selectQuery";
                    // 쿼리를 전송합니다.
                    if (mysqli_query($this->dbcon, $queryString)=== TRUE) {
                        $this->msgEcho("쿼리성공] ".$queryString);
                        $this->msgEcho(" 뷰 생성!");

                        return true;

                    } else {
                        $this->msgEcho("Error] ".$queryString);
                        return false;
                    }
                    
                } else {
                    $this->msgEcho("Error] 조건 select 쿼리를 입력해 주세요..");
                    return false;
                }

            } else {
                $this->msgEcho("Error] 뷰 이름을 적어주세요.");
                return false;
            }
}

예제 파일 | view-03.php

<?php
 
	include "dbinfo.php";
	include "mysql.class.php";
 
	// ++ Mysqli DB 연결.
	$db = new JinyMysql();
 
	// 뷰를 업데이트 합니다.
	$db->updateView("viewtest", "select * from members where Id=1");
 
?>

화면 출력

mysql connected!
쿼리성공] CREATE OR REPLACE VIEW viewtest AS select * from members where Id=1
뷰 생성!