Я пытаюсь получить идентификатор вставленной строки, которую мне нужно вставить в строку другой таблицы. но я продолжаю получать 0 отпечатков
Я создал таблицу с триггером, который позволяет автоматически увеличивать мой первичный ключ VARCHAR, но я думаю, что он не позволяет мне получить мой last_insert_ID. Я проверил сторону базы данных (Access: MyPHPAdmin) и все еще сохраняю возврат 0. Я также создал подобную базу данных без триггера и установил мой основной идентификатор как целое число, и все методы извлечения Last_Insert_ID работают отлично.
учитывая, что мои отпечатки равны 0 (нулю), я изменил значения набора триггеров на пустой пробел '' вместо NULL. это ничего не изменило.
cc_ins_sql = """INSERT into client_contractor(client_contractor, category, address, phone_number) values(%s,%s,%s,%s)"""
cc = raw_input("Client/ Contractor Name: ")
cat = raw_input("Client or Contractor?: ")
cc_addy = raw_input("Client/ Contractor Address: ")
pn = raw_input("Phone Number: ")
cc_ins_val = (cc, cat, cc_addy, pn)
my_cur.execute(cc_ins_sql, cc_ins_val)
my_cur.execute('SELECT LAST_INSERT_ID()')
c_id = my_cur.fetchone()
print c_id
my_db.commit()
моя таблица и создание триггера для (обеспечения более глубокого понимания)
def c_c():
cc_seq_table = "CREATE TABLE cc_seq(id INTEGER NOT NULL AUTO_INCREMENT
PRIMARY KEY);"
my_cur.execute(cc_seq_table, my_db)
try:
cc_sql = """CREATE TABLE client_contractor(client_contractor_ID
VARCHAR(6) NOT NULL PRIMARY KEY, client_contractor text, category
text, address text, phone_number text);"""
my_cur.execute(cc_sql, my_db)
cc_trigger = """CREATE TRIGGER tg_client_contractor_insert BEFORE
INSERT on client_contractor for each row BEGIN INSERT into cc_seq
VALUES(NULL); SET NEW.client_contractor_ID =
CONCAT('CC', LPAD(LAST_INSERT_ID(), 4, '0')); END"""
my_cur.execute(cc_trigger)
my_db.commit()
except Error as e:
print e
return None
ссылка на изображение, предоставленная ниже вывода из MyPHPAdmin