MySQL——修改視圖


    修改視圖是指修改數據庫中存在的視圖,當基本表的某些字段發生變化時,可以通過修改視圖來保持與基本表的一致性。

1.  用  CREATE  OR  REPLACE   VIEW  語句修改視圖

    語法格式如下:

     CREATE   [OR  REPLACE ]   [ALGORITHM={  UNDEFINED |  MERGE  |  TEMPTABLE }]
                   VIEW   view_name  [(  column_list )]
                   AS SELECT_statement

                 [ WITH  |  [ CASCADED |  LOCAL  ]  CHECK OPTION];

    可以看到,修改視圖的語句和創建視圖的語句完全一樣。當視圖存在時,修改語句對視圖進行修改;當視圖不存在時,創建視圖。

【例】修改視圖  view_t。

修改前:


   
   
  
  
          
  1. mysql> DESC view_t;
  2. + -----------------+------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. + -----------------+------------+------+-----+---------+-------+
  5. | quantity | int(11) | YES | | NULL | |
  6. | price | int(11) | YES | | NULL | |
  7. | quantity *price | bigint(21) | YES | | NULL | |
  8. + -----------------+------------+------+-----+---------+-------+

修改語句:


   
   
  
  
          
  1. mysql> CREATE OR REPLACE VIEW view_t AS SELECT * FROM t;
  2. Query OK, 0 rows affected (0.07 sec)

修改后:


   
   
  
  
          
  1. mysql> DESC view_t;
  2. + ----------+---------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. + ----------+---------+------+-----+---------+-------+
  5. | quantity | int(11) | YES | | NULL | |
  6. | price | int(11) | YES | | NULL | |
  7. + ----------+---------+------+-----+---------+-------+

2.  用  ALTER  語句修改視圖

語法格式如下:

         ALTER   [ALGORITHM={  UNDEFINED |  MERGE  |  TEMPTABLE }]
                   VIEW   view_name  [(  column_list )]
                   AS SELECT_statement

                 [ WITH  |  [ CASCADED |  LOCAL  ]  CHECK OPTION];

【例】用  ALTER  語句修改視圖  view_t。

修改前:


   
   
  
  
          
  1. mysql> DESC view_t;
  2. + ----------+---------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. + ----------+---------+------+-----+---------+-------+
  5. | quantity | int(11) | YES | | NULL | |
  6. | price | int(11) | YES | | NULL | |
  7. + ----------+---------+------+-----+---------+-------+

修改語句:


   
   
  
  
          
  1. mysql> ALTER VIEW view_t AS SELECT quantity FROM t;
  2. Query OK, 0 rows affected (0.04 sec)

修改后:


   
   
  
  
          
  1. mysql> DESC view_t;
  2. + ----------+---------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. + ----------+---------+------+-----+---------+-------+
  5. | quantity | int(11) | YES | | NULL | |
  6. + ----------+---------+------+-----+---------+-------+


【注】參考於清華大學出版社《MySQL數據庫應用案例課堂》2016年1月第1版


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM