সাইকোপগ ২.7 এ নতুন execute_values
পদ্ধতি :
data = [(1,'x'), (2,'y')]
insert_query = 'insert into t (a, b) values %s'
psycopg2.extras.execute_values (
cursor, insert_query, data, template=None, page_size=100
)
সাইকোপগ ২.6 এ এটি করার অজগর উপায়:
data = [(1,'x'), (2,'y')]
records_list_template = ','.join(['%s'] * len(data))
insert_query = 'insert into t (a, b) values {}'.format(records_list_template)
cursor.execute(insert_query, data)
ব্যাখ্যা: যদি তথ্য .োকাতে হয় তবে তার মতো তালিকার তালিকা হিসাবে দেওয়া হয়
data = [(1,'x'), (2,'y')]
তবে এটি ইতিমধ্যে যথাযথ প্রয়োজনীয় ফর্ম্যাটে রয়েছে
values
বাক্য গঠন প্রণালী insert
দফা হিসেবে রেকর্ডের একটি তালিকা আশা
insert into t (a, b) values (1, 'x'),(2, 'y')
Psycopg
পাইথনকে tuple
পোস্টগ্র্যাস্কল-এ রূপান্তর করে record
।
সাইকোপগ দ্বারা পূরণ করার জন্য একটি রেকর্ড তালিকার টেম্পলেট সরবরাহ করা একমাত্র প্রয়োজনীয় কাজ
# We use the data list to be sure of the template length
records_list_template = ','.join(['%s'] * len(data))
এবং এটি insert
ক্যোয়ারিতে রাখুন
insert_query = 'insert into t (a, b) values {}'.format(records_list_template)
insert_query
আউটপুট মুদ্রণ
insert into t (a, b) values %s,%s
এখন সাধারণ Psycopg
যুক্তি প্রতিস্থাপন
cursor.execute(insert_query, data)
বা সার্ভারে কী প্রেরণ করা হবে তা কেবল পরীক্ষা করেই
print (cursor.mogrify(insert_query, data).decode('utf8'))
আউটপুট:
insert into t (a, b) values (1, 'x'),(2, 'y')
execute
কৌশলটি ব্যবহার করা তত ভাল । আমি এটি প্রায় 100x ধন্যবাদ গতিবেগ দেখেছি!