sql >> データベース >  >> RDS >> PostgreSQL

私のHerokuアプリにPostgresqlを追加する-構文クラッシュクエリの問題?

    User はpostgresqlの予約語であり、""で囲むことでエスケープされます。 https://stackoverflow.com/a/7651432 を参照してください 。エスケープ文字がバッククォートであるmysqlとは対照的です。

    また、Final_Ratioという名前の列に挿入しようとします ただし、列Final_Gearingを定義します 。テストのために、I#mは、実行ごとにテーブルを削除して再作成します。修正されたコード:

    import psycopg2
    
    # connect to remote Heroku Postgres DB
    pgdb = psycopg2.connect(
       host='localhost',
       user='test',
       password='test',
       port='5432',
       database='test_stackoverflow'
       )
    
    pgcursor = pgdb.cursor()
    
    # verify I've got my credentials in correctly
    def check_connection():
       pgcursor.execute("select version()")
       data = pgcursor.fetchone()
       print("Connection established to: ", data)
    
    def create_table():
       sql = '''CREATE TABLE estimation_data 
       ("User" text PRIMARY KEY,
        Motor_kV integer,
         Batt_Volt decimal,
          Pinion integer,
           Spur integer,
            Final_Gearing decimal,
             Wheel_Rad decimal);'''
       pgcursor.execute(sql)
       pgdb.commit()
    
    def drop_table():
       sql = "DROP TABLE IF EXISTS estimation_data;"
       pgcursor.execute(sql)
       pgdb.commit()
    
    
    
    def pg_add_data(sql,val):
       pgcursor.executemany(sql, val)
       pgdb.commit()
    
    
    check_connection()
    drop_table()
    create_table()
    
    pgsql = '''INSERT INTO estimation_data 
       ("User", Motor_kV, Batt_Volt, Pinion, Spur, Final_Gearing, Wheel_Rad) 
       VALUES (%s, %s, %s, %s, %s, %s, %s);'''
    pgval = [
          ('204.210.165.122', 2400, 16.8, 16, 54, 3.92, 2.5),
          ('204.210.165.123', 3500, 12.6, 16, 54, 3.92, 2.5),
          ('204.210.165.124', 4200, 8.4, 12, 54, 3.92, 2.5)]
    pg_add_data(pgsql, pgval)
    

    本番サイトの基本を学ぶのは良いことですが、SQLalchemyのような高レベルのライブラリを使用することを強くお勧めします。




    1. リモートSQLServerデータベースへの接続に関する従来のASPの問題

    2. ウィンドウでOracleDBMSジョブをスケジュールする方法

    3. MySQLのBIGINT列にインデックスを追加するのに役立ちますか?

    4. OracleデータベースをMySQLに変換するにはどうすればよいですか?