创建如果不存在视图?

时间:2010-07-23 09:32:14

标签: sql mysql view h2

MySQL或H2数据库中有create view if not exists有什么办法吗?

3 个答案:

答案 0 :(得分:18)

从MySQL 5.0参考手册的12.1.12. CREATE VIEW Syntax部分:

CREATE VIEW Syntax

CREATE
    [OR REPLACE]
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
  

如果给出了OR REPLACE子句,CREATE VIEW语句将创建一个新视图,或替换现有视图。这个语句是在MySQL 5.0.1中添加的。如果视图不存在,则CREATE OR REPLACE VIEW与CREATE VIEW相同。如果视图确实存在,则CREATE OR REPLACE VIEW与ALTER VIEW相同。

答案 1 :(得分:16)

通常的方法是使用create or replace覆盖视图:

create or replace view YourView
as
select * from users

答案 2 :(得分:1)

在H2上,您可以在要创建的视图名称之前添加 IF NOT EXISTS 。 例如:

const myAction = () => (dispatch, getState) => {

  // get state here and dispatch actions with it
  const id = getState().modalId;

  dispatch({
    type: 'ANOTHER_ACTION',
    modalId
  });
}