首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于CSV的大容量插入更新列

基于CSV的大容量插入更新列
EN

Stack Overflow用户
提问于 2015-05-29 04:13:06
回答 2查看 2.7K关注 0票数 4

我正在尝试基于CSV文件更新一个表。我有CSV中id和trim号的列表,我需要根据SQL表中的特定id更新Trim号。

到目前为止我写的剧本

代码语言:javascript
复制
-- Create a temporary table for the import
   drop table #InterpreterTrimNumbers
   CREATE TABLE #InterpreterTrimNumbers( 
  [SAPInterpreterId] int,
  TempTrimNumber varchar(100)
)

BEGIN TRANSACTION
  -- Bulk import into the temporary table
  BULK INSERT #InterpreterTrimNumbers FROM 'C:\CSVData\Trim numbers.csv' WITH (
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n',
    ERRORFILE = 'C:\CSVData\Trim numbers-errors.csv',
    TABLOCK
  )

  update Interpreters set TrimNumber = (select TempTrimNumber from #InterpreterTrimNumbers where #InterpreterTrimNumbers.SAPInterpreterId = Interpreters.SAPInterpreterID )
  Commit Transaction

这一个返回1824行受影响,即使CSV文件只有110条记录。我只想用特定的SAPInterpreterID更新记录

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-29 04:40:46

假设只有110个记录被插入到临时表中,并且ID在解释器表中是唯一的,那么语法应该是这样的。

代码语言:javascript
复制
UPDATE i 
SET TrimNumber = tempintr.TempTrimNumber
FROM Interpreters AS i INNER JOIN 
     #InterpreterTrimNumbers tempintr
     ON i.TrimNumber= tempintr.TempTrimNumber

您的查询之所以不能工作,是因为它试图更新解释器表中的每个数字。当临时表上有匹配时,是的,这就是您所需要的。但是,当没有匹配时,查询将返回NULL,导致不匹配的记录被更新为NULL

票数 6
EN

Stack Overflow用户

发布于 2020-10-12 19:21:40

代码语言:javascript
复制
df10 = pd.read_csv("/tmp/z34.csv")

iters = df10.iterrows()


    for index, row in iters:
        conn = psycopg2.connect(host=rds_host,
                           database=db_name,
                           user=name,
                           password=password)
   
    cur.execute(
                'UPDATE "master_brand" SET  "description" = %s, "created_at" = %s, 
                 "updated_at" = %s WHERE "master_brand"."brand_name" = %s',
                 [row['description'], row['created_at'], row['updated_at'],
                 row['brand_name']])
   
    conn.commit()
   
    conn.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30521009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档