Mysql:如何使物化视图中的列成为主键

Posted

技术标签:

【中文标题】Mysql:如何使物化视图中的列成为主键【英文标题】:Mysql: How to make a column in a materialized view the primary key 【发布时间】:2014-08-14 20:43:50 【问题描述】:

我正在编写一个查询来创建一个基于物化视图的表。像

" 创建tableView AS 选择表 1.column1, table2.column4, table3.column7 从 ... "

如何更改此查询以使 table1.column1 成为此表的主键?

【问题讨论】:

【参考方案1】:

你可以这样做

CREATE TABLE tableView (PRIMARY KEY (column1)) 
SELECT table1.column1, table2.column4, table3.column7 FROM ...

见CREATE TABLE ... SELECT Syntax

CREATE TABLE ... SELECT 不会自动为 你。这样做是故意使语句像 可能的。 如果你想在创建的表中有索引,你应该 在 SELECT 语句之前指定这些:

mysql> CREATE TABLE bar (UNIQUE (n)) SELECT n FROM foo;

由我强调,请参阅Demo,其中原始表没有键。

【讨论】:

以上是关于Mysql:如何使物化视图中的列成为主键的主要内容,如果未能解决你的问题,请参考以下文章

在Postgres中的物化视图上创建主键

实体框架中的 Oracle 物化视图问题

在 Postgres 的物化视图上创建主键

Oracle DB表与视图的关系(物化视图)

如何用 MySQL 实现物化视图?

物化视图创建案例