1

db4free.net でデータフレームを MySQL にエクスポートすると、現在の python コードが機能しています。しかし、今度はbackandが提供する別の MySQL を使用する必要があります。作成したデータベース テーブル 'KLSE' に主キーの問題があることがわかりました (正直なところ、主キーがどのように役立つかわかりません)。dataframe.to_sql のドキュメントを確認したところ、index=True でさえ主キーを意味しないことがわかりました。現在存在する主キーを追加するために使用できる回避策を知りたいです。参考までに、backand データベースから dataframe.read_sql を実行し、データのクエリを実行しました (ただし、backand には主キーがないためエラーが表示されるため、REST API を作成できません)。以前のコードは db4free.net MySQL では機能しますが、backand MySQL では主キー エラーが発生します

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+mysqldb://abc:abc@abc')

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')
4

1 に答える 1

1

主キーは一度だけ追加する必要があります。次の方法で実行できます。

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

alter table KLSE add id int primary key auto_increment;

テーブルに PK (主キー) として使用する列が既にある場合:

alter table KLSE modify <existing_column_name> int auto_increment primary key;
于 2016-05-27T17:29:11.780 に答える