Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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/9/google-apps-script/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查询以更新1000条记录_Sql_Oracle_Sql Update - Fatal编程技术网

SQL查询以更新1000条记录

SQL查询以更新1000条记录,sql,oracle,sql-update,Sql,Oracle,Sql Update,我已经创建了1000条ID为sequence ID的记录。现在,我有了1000个唯一代码的列表,需要分配给每条记录 像这样: 我正在寻找使用SQL脚本实现它的建议 您只想要排号吗 你只想要排号吗 您可以使用MERGE语句: 合并到目标表dst中 使用 选择ROWNUM rn, 价值 从您的\u代码\u表 src 在src.rn=dst.id上 当匹配时 更新集代码=src.value 当不匹配时 插入id,代码值目的地\表\ id \序号.NEXTVAL,src.value; 但是,这将增加更新

我已经创建了1000条ID为sequence ID的记录。现在,我有了1000个唯一代码的列表,需要分配给每条记录

像这样:

我正在寻找使用SQL脚本实现它的建议

您只想要排号吗

你只想要排号吗

您可以使用MERGE语句:

合并到目标表dst中 使用 选择ROWNUM rn, 价值 从您的\u代码\u表 src 在src.rn=dst.id上 当匹配时 更新集代码=src.value 当不匹配时 插入id,代码值目的地\表\ id \序号.NEXTVAL,src.value; 但是,这将增加更新和插入的每一行的序列,这可能不是您想要的

最简单的方法是从目标表中删除不带代码的现有行,然后删除基于id值的序列,然后重新创建序列以将序列重置回其起始值:

从目的地_表中删除; 丢弃序列目的地\表\ id \序列; 创建序列目的地\表\ id \序列; 并插入以下行:

插入目标_表id,代码 选择destination_table_id_seq.NEXTVAL, 价值 从您的\u代码\u表 您可以使用MERGE语句:

合并到目标表dst中 使用 选择ROWNUM rn, 价值 从您的\u代码\u表 src 在src.rn=dst.id上 当匹配时 更新集代码=src.value 当不匹配时 插入id,代码值目的地\表\ id \序号.NEXTVAL,src.value; 但是,这将增加更新和插入的每一行的序列,这可能不是您想要的

最简单的方法是从目标表中删除不带代码的现有行,然后删除基于id值的序列,然后重新创建序列以将序列重置回其起始值:

从目的地_表中删除; 丢弃序列目的地\表\ id \序列; 创建序列目的地\表\ id \序列; 并插入以下行:

插入目标_表id,代码 选择destination_table_id_seq.NEXTVAL, 价值 从您的\u代码\u表
重新开始,同时插入唯一的代码和id。@jarlh此时,我无法访问这些代码。感谢您的快速回复。如果您无法访问代码,那么您将如何分配它们?除了@grootygroot提出的问题,他还向我提出了一个问题,即使您可以访问代码,您如何确定将哪些代码分配给哪个id?@a_horse_,没有名称代码,将分配给另一个团队,我必须为他们提供更新脚本来更新代码启动,同时插入唯一的代码和id。@jarlh此时,我没有访问代码的权限。感谢您的快速回复。如果您无法访问代码,那么您将如何分配它们?除了@grootygroot提出的问题,他还向我提出了一个问题,即使您可以访问代码,您如何确定将哪些代码分配给哪个id?@a_horse_,没有名称代码,将分配给另一个团队,我必须为他们提供更新脚本来更新代码
select code, row_number() over (order by code) as id
from t;