2017-06-03 16 views
0

私のテーブルの天候Pymysql外部キーエラーに

create table weather (
      time timestamp default current_timestamp on update current_timestamp, 
      id smallint, 
      tpr float(3,1), 
      wet float(3,1), 
      uv tinyint(2), 
      foreign key (id) references database.station(pk)); 

表駅

CREATE TABLE station(
pk SMALLINT(5) NOT NULL AUTO_INCREMENT, 
name VARCHAR(5), 
lng DOUBLE(10,6), 
lat DOUBLE(10,6), 
PRIMARY KEY(pk)); 

私は天候にIDを挿入するためにpymysqlを使用して挿入します。

私は下の二つの機能を作っ:

conn = pymysql.connect()#ignore the details 
def get_id_from_station(): 
    sql = """SELECT pk FROM station """ 
    conn.cursor().execute(sql) 
    id = conn.cursor().fetchone()[0] 
    weather_saved(id) 

def weather_saved(id): 
    #get the time,tpr,wet,uv value 
    sql = """INSERT INTO weather (time,id,tpr,wet,uv) VALUES (%s,%s,%s,%s,%s)""" 
    db.execute(sql, (time, id,tpr, wet, uv)) 

しかし、天候テーブルは更新されませんでした。

どうしたのですか?

答えて

0

天気予報を更新するコードです。私はPython 2.7を使用しましたが、同じでなければなりません。私はあなたの問題はあなたが挿入をコミットしなかったかもしれないと思う。

import pymysql 

conn = pymysql.connect(...) 

def get_id_from_station(): 
    sql = """SELECT pk FROM station """ 

    cursor = conn.cursor() 
    cursor.execute(sql) 
    row = cursor.fetchone() 
    weather_saved(row) 

import time 
import datetime 

def weather_saved(id): 
    #get the time,tpr,wet,uv value 
    sql = """INSERT INTO weather (time,id,tpr,wet,uv) VALUES (%s,%s,%s,%s,%s)""" 
    cursor = conn.cursor() 
    ts = time.time() 
    timestamp = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S') 
    cursor.execute(sql, (timestamp, id,7, 7, 7)) 
    conn.commit() 

get_id_from_station() 
関連する問題