2016-05-27 25 views
1

db4free.netでデータフレームをMySQLにエクスポートすると、現在のPythonコードが動作しています。しかし、今ではbackandで提供されている別のMySQLを使用する必要があります。私はデータベーステーブルを見ました。私が作成した 'KLSE'にはプライマリキーの問題があります(正直なところ、プライマリキーが役に立ちます。 私はdataframe.to_sqlのドキュメントを調べましたが、偶数インデックス= Trueが主キーを意味しないことがわかりました。私はの対処方法が主キーの追加に使用できることを知りたいのですが、現在存在しています。 FYI、backandデータベースからdataframe.read_sqlを作成しましたが、データを照会することができます(ただし、主キーとしてエラーが表示されるため、REST APIを作成できません)。 db4free.net MySQLのために働く前のコードが、backandのMySQLPython:dataframe.to_sqlを使用してMySQLに主キーを追加

import pandas as pd 
from sqlalchemy import create_engine 

engine = create_engine('mysql+mysqldb://abc:[email protected]') 

df_2.to_sql(name='KLSE', con=engine, if_exists='replace') 

の主キーのエラーを作成することができない、私はMySQLdbはライブラリを使用して主キーを追加しようとするが、KLSEテーブルが既に存在しています。

import pandas as pd 
import MySQLdb as mdb 

engine = mdb.connect(host='abc',user='abc',passwd='pw',db='abc$default') 
cur = engine.cursor() 
cur.execute("INSERT INTO KLSE(Id INT PRIMARY KEY AUTO_INCREMENT, \Name VARCHAR(25))") 
df_2.to_sql(name='KLSE', con=engine, if_exists='replace') 

答えて

0

プライマリキーを1回追加する必要があります。あなたのテーブルがすでにとして使用しようとしている列がある場合

alter table KLSE add id int primary key auto_increment; 

:ご希望のPK(主キー)として新しい列を追加する場合

:あなたは、このようにそれを行うことができますPK(主キー):不明な列「ID:

alter table KLSE modify <existing_column_name> int auto_increment primary key; 
+0

私はとMySQL、両方のリターンERROR 1054(42S22)( "表KLSEは、ID INT AUTO_INCREMENT、主キーを変更する変更")のpython cur.executeにコマンドを追加'in' KLSE ' – vindex

+0

@vindex、私は私の答えを更新しました - cheしてくださいck – MaxU

+0

MySQLからのスナップショット(https://snag.gy/HZF2Uo.jpg) – vindex

関連する問題