Pandas + MySQL重复密钥更新损坏

时间:2017-08-23 15:36:27

标签: python mysql pandas sqlalchemy on-duplicate-key

我的ON DUPLICATE UPDATE条款停止更新,我不确定原因。

下面是我通过Pandas创建临时表的代码:

<Path Fill="{Binding MyBoolProperty, RelativeSource={RelativeSource FindAncestor, AncestorType=Path}, Converter={StaticResource BoolToColorConverter}}"/>

它成功创建了一个包含所有数据类型的MySQL表格&#39; Text&#39;除了作为bigint写的user_tracks(20)。

然后我运行它,但表没有更新。这对我来说特别奇怪,因为我有许多使用类似方法的脚本,我唯一记得改变的是停止更新其他静态列。

#connect to mysql database
engine = sqlalchemy.create_engine('mysql://username:@localhost/db?charset=utf8')
conn = engine.connect()

#Create df and write to temp table
df = pd.DataFrame(item_bank,columns=['email','id', 'mbid','artist','track','plays','track_count'])
df.to_sql(con=conn, name='temp', if_exists='replace',index=False)

正在更新的永久表列的架构如下所示。多个唯一键约束是id和email的组合。我还确认两个表中都有重复的键

mysql_statement = """
    INSERT INTO pickaresk.permanent 
        (email, id, mbid, artist, track, plays, track_count) 
    SELECT * FROM temp
    ON DUPLICATE KEY UPDATE
        plays=temp.plays,
        track_count=temp.track_count,
        lastfm_last_update=NOW() 
    ;
"""

conn.execute(mysql_statement)
conn.close()

0 个答案:

没有答案