Teradata锁定行,用于在将查询插入易失性表时进行访问

Teradata锁定行,用于在将查询插入易失性表时进行访问,teradata,volatile,Teradata,Volatile,我在teradata中有一个VOLATILE表,我用下面的代码创建了它 CREATE VOLATILE TABLE Temp ( ID VARCHAR(30), has_cond INT ) ON COMMIT PRESERVE ROWS; 我想从我创建的select语句中插入记录,这是一个相当大的SQL语句,在继续之前肯定需要行锁 INSERT INTO Temp (ID ,has_cond) SELECT * FROM.... 有谁能告诉我如何安全地锁定行,这样我就可以将记录插入到我

我在
teradata
中有一个
VOLATILE表
,我用下面的代码创建了它

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表中,因为它们是生产表,我不想锁定一些可能在后台发生的
ETL
,我认为你不能为
插入应用行锁定,除非你将
选择
从某种角度来看

或者切换到
锁定表
,但不要忘记包含所有表


但在大多数生产环境中,都有一个带有1-1视图的数据库,其中包括
锁定行访问
,您可以使用这些视图(或者您可能已经使用了,请检查解释)。

除非将
选择
放在视图中,否则我认为您无法为
插入应用行锁定

或者切换到
锁定表
,但不要忘记包含所有表


但在大多数生产环境中,都有一个带有1-1视图的数据库,其中包括
锁行访问
,您可以使用这些视图(或者您可能已经使用了,请检查解释)。

Hi@dnoeth。非常感谢您的快速回复。似乎我也可以使用
lock tablename for access
来实现我想要的功能,因为在大多数情况下,锁会被优化器提升到表级别……Hi@dnoeth。非常感谢您的快速回复。似乎我也可以使用
锁tablename for access
来实现我想要的功能,因为在大多数情况下,锁会被优化器提升到表级别。。。