ALTER VIEW 키워드를 통하여 VIEW의 컬럼 구조를 변경할 수 있습니다. ALTER VIEW는 CREATE VIEW 를 통하여 새로 생성하는 것과 거의 유사합니다.
| 쿼리 문법 |
ALTER VIEW 뷰 이름 AS SELECT 컬럼명 FROM 테이블명;
21.6.1 쿼리 실습
기존 가상 테이블의 데이터를 출력해 봅니다.
| 콘솔 실습 화면 |
mysql> select * from viewtest;
+----+----------+-----------+----------+-------+---------+-----------+-------------------+
| Id | LastName | FirstName | Address | City | Country | manager | email |
+----+----------+-----------+----------+-------+---------+-----------+-------------------+
| 1 | hojin | lee | shinchon | seoul | Korea | infohojin | hojin@jinyphp.com |
+----+----------+-----------+----------+-------+---------+-----------+-------------------+
1 row in set (0.00 sec)
가상 테이블의 컬럼을 새롭게 지정합니다. 뷰의 출력 컬럼 필드를 수를 변경해 보겠습니다.
| 예제 쿼리 |
alter view viewtest as select FirstName, Lastname from members where Id = 1;
| 콘솔 실습 화면 |
mysql> alter view viewtest as select FirstName, Lastname from members where Id = 1;
Query OK, 0 rows affected (0.01 sec)
정상적으로 뷰가 변경이 되었습니다. 다시 한번 가상 테이블의 목록을 출력해 봅니다.
| 콘솔 실습 화면 |
mysql> select * from viewtest;
+-----------+----------+
| FirstName | Lastname |
+-----------+----------+
| lee | hojin |
+-----------+----------+
1 row in set (0.00 sec)
2개의 컬럼만 출력되는 것을 확인할 수 있습니다.
21.6.2 PHP 실습
PHP 코드를 통하여 실습해 봅니다.
| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.
public function alterView($view, $selectQuery)
{
if ($view) {
if ($selectQuery) {
$queryString = "ALTER 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-05.php
<?php
include "dbinfo.php";
include "mysql.class.php";
// ++ Mysqli DB 연결.
$db = new JinyMysql();
// 뷰를 업데이트 합니다.
$db->alterView("viewtest", "select FirstName, LastName from members where Id=1");
?>
화면 출력
mysql connected!
쿼리성공] ALTER VIEW viewtest AS select FirstName, LastName from members where Id=1
뷰 생성!