我正在尝试合并两个表
def computesha(counter):
hash = 'somedata'+'otherdata'+str(counter)
newHash = hashlib.sha1(hash.encode()).hexdigest()
if newHash[:9] == '000000000':
print(str(newHash))
print(str(counter))
return str(newHash), str(counter)
if __name__ == '__main__':
d1 = datetime.datetime.now()
print("Start timestamp" + str(d1))
manager = multiprocessing.Manager()
return_dict = manager.dict()
p = Pool()
p.map(computesha, range(sys.maxsize) )
print(return_dict)
p.close()
p.join()
d2 = datetime.datetime.now()
print("End timestamp " + str(d2))
print("Elapsed time: " + str((d2-d1)))
我希望最终结果如下所示
NAME AGE SALARY CITY
Mike 29 42000.00 SAN BERNARDINO
Chris 28 52000.00 FRESNO
Shawn 27 35000.00 SACRAMENTO
Chris 28 52000.00 FRESNO
ID NAME AGE SALARY CITY
1 NULL NULL NULL NULL
2 NULL NULL NULL NULL
3 NULL NULL NULL NULL
4 NULL NULL NULL NULL
到目前为止,我最终使用insert into选项获得了最好的结果,并且对此感到疑惑。我知道我可以只使用update或某种方式一步一步地完成它,但我认为这对于较大的表来说不是很好。我创建了一个没有主键的数据库,而我只是主要看到如何解决它。
ID NAME AGE SALARY CITY
1 Mike 29 42000.00 SAN BERNARDINO
2 Chris 28 52000.00 FRESNO
3 Shawn 27 35000.00 SACRAMENTO
4 Chris 28 52000.00 FRESNO
Instead it looks like this below
ID NAME AGE SALARY CITY
1 NULL NULL NULL NULL
2 NULL NULL NULL NULL
3 NULL NULL NULL NULL
4 NULL NULL NULL NULL
NULL Mike 29 42000.00 SAN BERNARDINO
NULL Chris 28 52000.00 FRESNO
NULL Shawn 27 35000.00 SACRAMENTO
NULL Chris 28 52000.00 FRESNO
我不确定代码中要更改什么或如何更改。
编辑:我什至不能使用此网站。
答案 0 :(得分:1)
如果您只想为行分配一个ID,则如下所示是一种更好的方法:
with data as (
select 'Mike' as NAME, 29 AS AGE, 42000.00 AS SALARY, 'SAN BERNARDINO' AS CITY union all
select 'Chris',28,52000.00,'FRESNO' union all
select 'Shawn',27,35000.00,'SACRAMENTO' union all
select 'Chris',28,52000.00,'FRESNO'
)
select
row_number() over (partition by null) as ID,
d.*
from data d
答案 1 :(得分:0)
您可以使用ID
的{{1}}函数人为创建row_number()
并更新SAMPLE2
。
SAMPLE