【发布时间】:2011-03-20 00:27:33
【问题描述】:
有没有办法在 MySQL 或 H2 数据库中create view if not exists?
【问题讨论】:
有没有办法在 MySQL 或 H2 数据库中create view if not exists?
【问题讨论】:
通常的方法是使用create or replace覆盖视图:
create or replace view YourView
as
select * from users
【讨论】:
create or alter view YourView as ...
来自 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 相同。
【讨论】:
在 H2 上,您可以在要创建的视图名称前添加 IF NOT EXISTS。 例如:
CREATE VIEW IF NOT EXISTS viewExampleName (column1, column2)
AS (
SELECT column1, column2
FROM example_table
);
【讨论】:
IF NOT EXISTS。