Teradata LOCK ROW FOR ACCESS 将查询插入到 VOLATILE TABLE
Teradata LOCK ROW FOR ACCESS on insert query into a VOLATILE TABLE
我在 teradata
中有一个 VOLATILE TABLE
是我用下面的代码创建的
CREATE VOLATILE TABLE Temp
(
ID VARCHAR(30),
has_cond INT
) ON COMMIT PRESERVE ROWS;
我想从我创建的 select 语句中插入记录,这是一个相当大的 SQL 语句,在继续之前肯定需要行锁
INSERT INTO Temp
(ID ,has_cond)
SELECT * FROM....
任何人都可以告诉我如何安全地锁定行以便我可以将记录插入到我的 VOLATILE TABLE
中,因为它们是生产表并且我不想锁定一些可能 ETL
在后台发生
我认为您不能为 insert
应用 行锁,除非您将 select
放在视图中。
或者您切换到 lock table
,但不要忘记包括所有表格...
但在大多数生产环境中,有一个包含 1-1 视图的数据库,包括 lock row access
,您可以使用它们(或者您可能已经使用了,请检查 Explain)。
我在 teradata
中有一个 VOLATILE TABLE
是我用下面的代码创建的
CREATE VOLATILE TABLE Temp
(
ID VARCHAR(30),
has_cond INT
) ON COMMIT PRESERVE ROWS;
我想从我创建的 select 语句中插入记录,这是一个相当大的 SQL 语句,在继续之前肯定需要行锁
INSERT INTO Temp
(ID ,has_cond)
SELECT * FROM....
任何人都可以告诉我如何安全地锁定行以便我可以将记录插入到我的 VOLATILE TABLE
中,因为它们是生产表并且我不想锁定一些可能 ETL
在后台发生
我认为您不能为 insert
应用 行锁,除非您将 select
放在视图中。
或者您切换到 lock table
,但不要忘记包括所有表格...
但在大多数生产环境中,有一个包含 1-1 视图的数据库,包括 lock row access
,您可以使用它们(或者您可能已经使用了,请检查 Explain)。