Как сделать мой оператор вставки в несколько строк? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь выполнить запрос вставки, который работает, когда я пишу его в одну строку.

Я хочу разделить его на несколько строк, чтобы сделать мой код читабельным Этот код не работает, когдаразбить на строки

cursor.execute('''INSERT INTO dbo.SEGMENT_PROSPECTS([SEG_CATEGORY],[SEG_SUB_CATEGORY],[CUSTOMER_CNIC],
        [CUSTOMER_NAME],[CUSTOMER_MOBILE],[CUSTOMER_EMAIL],[CUSTOMER_GENDER],[CREATED_ON],[UPDATED_ON],[CREATED_BY],
        [UPDATED_BY]), values (?,?,?,?,?,?,?,?,?,?,?)''', row['SEG_CATEGORY'],row['SEG_SUB_CATEGORY'],row['RELATIONSHIP_NUM'],
        row['MOBILE_PHONE'],row['PRIMARY_EMAIL'],row['FULL_NAME'],row['GENDER_CODE'],row['CREATED_ON'],row['UPDATED_ON'],row['CREATED_BY'],
        row['UPDATED_BY'])

1 Ответ

0 голосов
/ 09 октября 2019

Я предполагаю, что ваши данные - это пандас? Лучше всего превратить это в диктовку, а затем передать значения в виде списка.

Предполагая, что у вас есть больше столбцов в вашем фактическом df, вы можете копировать, не изменяя и не удаляя его вообще.

new_row = row[['SEG_CATEGORY', 'SEG_SUB_CATEGORY', 'RELATIONSHIP_NUM', 'MOBILE_PHONE', 'PRIMARY_EMAIL', 'FULL_NAME', 'GENDER_CODE', 'CREATED_ON', 'UPDATED_ON', 'CREATED_BY', 'UPDATED_BY']].copy()

cursor.execute('''INSERT INTO dbo.SEGMENT_PROSPECTS([SEG_CATEGORY],[SEG_SUB_CATEGORY],[CUSTOMER_CNIC],
        [CUSTOMER_NAME],[CUSTOMER_MOBILE],[CUSTOMER_EMAIL],[CUSTOMER_GENDER],[CREATED_ON],[UPDATED_ON],[CREATED_BY],
        [UPDATED_BY]), values (?,?,?,?,?,?,?,?,?,?,?)''', new_row.values.tolist())

...