MariaDB:如果存在具有相同名称的持久性表,如何选择临时表?

问题描述 投票:0回答:1

我创建了一个持久表temp和一个临时表temp,即它们具有相同的名称。如何将select / update / insert专门用于持久表或临时表?我如何区别他们?

MariaDB Tutorial说:

注意–临时表可以与现有的非临时表具有相同的名称,因为MariaDB会将其视为差异引用。

因此,我认为应该可以引用这些表之一。这个问题与我在SO中提出的question有关,但往后退了一步。

mariadb temp-tables
1个回答
0
投票

如果临时表与现有的非临时表具有相同的名称,则该临时表将隐藏非临时表的名称。

这意味着在SQL语句中,您将不能引用非临时表。

一种解决方法是,在创建临时表之前在非临时表上创建视图,因为该视图在内部保留对非临时表的引用:

CREATE TABLE t1 (a VARCHAR(100));
INSERT INTO t1 VALUES ("foo");
CREATE VIEW v_t1 AS SELECT a FROM t1;
CREATE TEMPORARY TABLE t1 (b VARCHAR(100));
INSERT INTO t1 VALUES ("bar");
SELECT * FROM v_t1;
SELECT * FROM t1;
© www.soinside.com 2019 - 2024. All rights reserved.