วันจันทร์ที่ 11 เมษายน พ.ศ. 2559

PostgreSQL : Inserting data

Inserting data

          การใส่ข้อมูลในDatabaseที่ได้สร้างไว้ โดยการใส่ข้อมูลทีละตาราง เลือกใส่ข้อมูลที่ไม่มี FK ก่อน เพื่อให้ไม่เกิดการ error เมื่อมีการอ้างอิงไปยังตาราง

โดยลำดับการใส่ข้อมูลในตารางทั้ง 10 ตารางจะทำดังนี้
  1. inv_type
  2. orders
  3. location
  4. users
  5. lab_assistant
  6. item
  7. storage
  8. order_item
  9. inv_trans
  10. tr_item

ปัญหาที่พบ


          ในการใส่ข้อมูลคิดว่าสามารถใช้code ข้อความ เดียวกับ การใส่ข้อมูลใน MySQL หรือใน Sqlite ได้
นั่นคือ
    exec_str = 'insert into inv_type values ("'   +str(i) + ' ");' 
    c.execute(exec_str)


          แต่เมื่อทำการใช้ code ดังตัวอย่างข้างบน จะขึ้น error ว่า "psycopg2.ProgrammingError: column "1" does not exist"

psycopg2.ProgrammingError: column "1" does not exist


จากนั้นก็ได้แก้ไขเป็น

     c.execute("insert into inv_type values (%s);",(str(i)))

อ้างอิง : http://stackoverflow.com/questions/4113910/python-psycogp2-inserting-into-postgresql-help

          ตามที่ได้มีการแนะนำไว้ในเว็บด้านบน errorเก่าไม่ได้แจ้งเตือนแล้ว แต่ได้มีการเกิด error ใหม่ขึ้น นั่นคือ

"TypeError: not all arguments converted during string formatting python "

TypeError: not all arguments converted during string formatting python

 จึงได้ทำการศึกษาเพิ่มเติมแล้วได้ทำการเปลี่ยน code ใหม่เป็น

    c.execute("insert into inv_type values ('%s');"%(str(i)))

อ้างอิง : http://stackoverflow.com/questions/18053500/typeerror-not-all-arguments-converted-during-string-formatting-python

การเปลี่ยน password ของ user  postgres

ภาพแสดงการเปลี่ยน password
          ซึ่งได้ทำการเปลี่ยน password เป็น sam55166 เนื่องจากตอนเชื่อมต่อ db ใน user postgresจะต้องใส่ password จึงต้องทำการเปลี่ยนก่อน

อ้างอิง : http://serverfault.com/questions/110154/whats-the-default-superuser-username-password-for-postgres-after-a-new-install

Code ที่ใช้ในการใส่ข้อมูล

          ใน MySQL และ Sqlite ได้ทำการใส่ข้อมูลตารางละ 20 ล้านrecord ใน PostgreSQL จึงได้ทำการใส่ตารางละ 20 ล้านrecordเท่ากัน เพื่อใช้ในการเปรียบเทียบ




อ้างอิงการใส่ข้อมูลจาก
1) http://www.tutorialspoint.com/postgresql/postgresql_python.htm
2) http://zetcode.com/db/postgresqlpythontutorial/

ไม่มีความคิดเห็น:

แสดงความคิดเห็น