Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 批量更新和插入的方法 我正在寻找一些关于这个问题的建议和事情。 我从一个web服务调用中获得了数千条记录。 相关数据项包括id、startDate、termDate、name和其他一些字段。 数据库中填充了一些记录。 唯一性是id+startDate+termDate,请注意,可能有许多相同的id,但startDate和/或termDate不同_Sql_Batch File - Fatal编程技术网

Sql 批量更新和插入的方法 我正在寻找一些关于这个问题的建议和事情。 我从一个web服务调用中获得了数千条记录。 相关数据项包括id、startDate、termDate、name和其他一些字段。 数据库中填充了一些记录。 唯一性是id+startDate+termDate,请注意,可能有许多相同的id,但startDate和/或termDate不同

Sql 批量更新和插入的方法 我正在寻找一些关于这个问题的建议和事情。 我从一个web服务调用中获得了数千条记录。 相关数据项包括id、startDate、termDate、name和其他一些字段。 数据库中填充了一些记录。 唯一性是id+startDate+termDate,请注意,可能有许多相同的id,但startDate和/或termDate不同,sql,batch-file,Sql,Batch File,对于来自web服务调用的记录,我需要找到与唯一约束匹配的记录,并对这些记录进行更新。 对于不在db中的web服务记录(id+startDate+termDate),我需要插入该记录 应用程序当前使用iBatis。 我需要一些关于“记录是否存在”exist例程的好方法的指导,以及如何跟踪需要用于更新和插入的web服务记录 然后,一旦我有了这两套REOCRD,我想知道做db工作的最佳方法是什么。 最好是一次迭代一条记录并进行工作(插入或更新),还是制作一个包含所有记录的大型更新或插入字符串更好,因此

对于来自web服务调用的记录,我需要找到与唯一约束匹配的记录,并对这些记录进行更新。 对于不在db中的web服务记录(id+startDate+termDate),我需要插入该记录

应用程序当前使用iBatis。 我需要一些关于“记录是否存在”exist例程的好方法的指导,以及如何跟踪需要用于更新和插入的web服务记录

然后,一旦我有了这两套REOCRD,我想知道做db工作的最佳方法是什么。
最好是一次迭代一条记录并进行工作(插入或更新),还是制作一个包含所有记录的大型更新或插入字符串更好,因此实际上,我将有两个db调用,一个用于更新,一个用于插入(但sql将非常庞大)

将web服务中的记录保存在文本文件中。然后将批插入到空的临时表中。代码将根据rdbms的不同而变化

创建临时表后,请执行插入操作:

insert into my_table (id, startDate, termDate, name)
select t.id, t.startDate, t.termDate, t.name
from temp_table t
left outer join my_table my on 
    t.id = my.id
    and
    t.startDate = my.startDate
    and
    t.termDate = my.termDate
where my.id is null
以及更新:

update my_table
set 
    id = t.id, 
    startDate = t.startDate, 
    termDate = t.termDate, 
    name = t.name
from temp_table t
inner join my_table my on 
    t.id = my.id
    and
    t.startDate = my.startDate
    and
    t.termDate = my.termDate
where 
    id = t.id
    and
    startDate = t.startDate
    and 
    termDate = t.termDate

上述未经测试的更新语法应在postgresql中使用。如果指定rdbms,我可以更改它。

将web服务中的记录保存在文本文件中。然后将批插入到空的临时表中。代码将根据rdbms的不同而变化

创建临时表后,请执行插入操作:

insert into my_table (id, startDate, termDate, name)
select t.id, t.startDate, t.termDate, t.name
from temp_table t
left outer join my_table my on 
    t.id = my.id
    and
    t.startDate = my.startDate
    and
    t.termDate = my.termDate
where my.id is null
以及更新:

update my_table
set 
    id = t.id, 
    startDate = t.startDate, 
    termDate = t.termDate, 
    name = t.name
from temp_table t
inner join my_table my on 
    t.id = my.id
    and
    t.startDate = my.startDate
    and
    t.termDate = my.termDate
where 
    id = t.id
    and
    startDate = t.startDate
    and 
    termDate = t.termDate
上述未经测试的更新语法应在postgresql中使用。如果您指定rdbms,我可以更改它