我无法完全理解语句级触发器的工作原理。每次交易执行一次吧?如果我有这个AFTER INSERT触发器,它内部的作用是如果它满足条件,则更新一个特定的列(例如,列状态为public class TFSHTTPClientFactory extends DefaultHTTPClientFactory {
public TFSHTTPClientFactory(final ConnectionInstanceData instanceData){
super(instanceData);
}
@Override
public void configureClientProxy(
final HttpClient httpClient,
final HostConfiguration hostConfiguration,
final HttpState httpState,
final ConnectionInstanceData instanceData) {
System.setProperty("com.microsoft.tfs.client.allowInsecureBasic", "true");
String proxyHost = null;
int proxyPort;
if(ProxyConfigurator.httpProxyHost!=null) {
proxyHost = ProxyConfigurator.httpProxyHost;
proxyPort = ProxyConfigurator.httpProxyPort;
} else {
proxyHost = ProxyConfigurator.httpsProxyHost;
proxyPort = ProxyConfigurator.httpsProxyPort;
}
hostConfiguration.setProxy(proxyHost, proxyPort);
}
}
)。
新插入的数据只会受到影响吗?或者表中的每个数据在列状态中具有此空值。我很高兴听到你对此的了解。
答案 0 :(得分:0)
语句级触发器将在触发语句运行后触发一次,而不像为每个受影响的行触发的行级触发器。
语句触发器通常用于处理数据集 - 例如登录到表,或运行一些语句后处理(通常是一个过程)。
如果您想要更新每个受影响的行中的值,那么我建议使用前行级触发器。您问题中的更新语句将影响COLUMN列为空的所有行。
触发器实际上是否正确使用是值得商榷的。不过,我建议您查看the documentation和this Oracle-base article,以便更好地了解触发器的工作方式以及何时使用它们。