34

有什么办法可以create view if not exists在 MySQL 或 H2 数据库中使用?

4

3 回答 3

33

从第12.1.12 节开始。MySQL 5.0 参考手册的CREATE VIEW 语法:

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]

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

于 2010-07-23T09:36:47.920 回答
29

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

create or replace view YourView
as
select * from users
于 2010-07-23T09:35:54.907 回答
2

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

CREATE VIEW IF NOT EXISTS viewExampleName (column1, column2) 
AS ( 
    SELECT column1, column2
    FROM example_table 
); 
于 2019-12-03T10:44:36.440 回答