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)。