가상 테이블 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
뷰 생성!