

# ALTER VIEW DIALECT
<a name="alter-view-dialect"></a>

从 AWS Glue Data Catalog 视图中添加或删除引擎方言。仅适用于 AWS Glue Data Catalog 视图。需要 `Lake Formation` 管理员或定义者权限。

有关 AWS Glue Data Catalog 视图的更多信息，请参阅[在 Athena 中使用 Data Catalog 视图](views-glue.md)。

## 语法
<a name="alter-view-dialect-syntax"></a>

```
ALTER VIEW name [ FORCE ] [ ADD|UPDATE ] DIALECT AS query
```

```
ALTER VIEW name [ DROP ] DIALECT
```

**FORCE**  
`FORCE` 关键字会导致视图中相互冲突的引擎方言信息被新定义覆盖。当 Data Catalog 视图更新导致现有引擎方言中的视图定义相互冲突时，`FORCE` 关键字很有用。假设 Data Catalog 视图同时使用 Athena 和 Amazon Redshift 方言，并且更新导致与视图定义中的 Amazon Redshift 发生冲突。在这种情况下，您可以使用 `FORCE` 关键字来允许更新完成，并将 Amazon Redshift 方言标记为过时。当标记为过时的引擎查询视图时，查询会失败。引擎会抛出异常以禁止过时结果。要更正此问题，请更新视图中的过时方言。

**ADD**  
为 Data Catalog 视图添加新的引擎方言。指定的引擎不得已存在于 Data Catalog 视图中。

**UPDATE**  
更新 Data Catalog 视图中已存在的引擎方言。

**DROP**  
从 Data Catalog 视图中删除现有的引擎方言。从 Data Catalog 视图中删除引擎后，已删除的引擎无法查询 Data Catalog 视图。视图中的其他引擎方言仍然可以查询视图。

**DIALECT AS**  
引入特定于引擎的 SQL 查询。

## 示例
<a name="alter-view-dialect-syntax-examples"></a>

```
ALTER VIEW orders_by_date FORCE ADD DIALECT 
AS 
SELECT orderdate, sum(totalprice) AS price 
FROM orders 
GROUP BY orderdate
```

```
ALTER VIEW orders_by_date FORCE UPDATE DIALECT 
AS 
SELECT orderdate, sum(totalprice) AS price 
FROM orders 
GROUP BY orderdate
```

```
ALTER VIEW orders_by_date DROP DIALECT
```