Inserting data
การใส่ข้อมูลในDatabaseที่ได้สร้างไว้ โดยการใส่ข้อมูลทีละตาราง เลือกใส่ข้อมูลที่ไม่มี FK ก่อน เพื่อให้ไม่เกิดการ error เมื่อมีการอ้างอิงไปยังตารางโดยลำดับการใส่ข้อมูลในตารางทั้ง 10 ตารางจะทำดังนี้
- inv_type
- orders
- location
- users
- lab_assistant
- item
- storage
- order_item
- inv_trans
- 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 |
อ้างอิง : 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/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น