


Функция с sql запросом к таблице
Функция, позволяющая добавить телефон для существующего клиента.
import psycopg2
def create_db(conn):
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS customers(
client_id SERIAL UNIQUE,
first_name VARCHAR(40),
last_name VARCHAR(60),
email VARCHAR(60),
phones VARCHAR(12)
);""")
conn.commit()
def add_phone(conn, client_id, phone):
cur = conn.cursor()
cur.execute("""
INSERT INTO customers(client_id, phones) VALUES( %s, %s);
""", (client_id, phone))
conn.commit() # фиксируем в БД
Вызываю функцию
add_phone(conn, 3, '+79650449021')
Получаю ошибку:
psycopg2.errors.UniqueViolation: ОШИБКА: повторяющееся значение ключа нарушает ограничение уникальности "customers_client_id_key"
DETAIL: Ключ "(client_id)=(3)" уже существует.
Как это можно исправить чтобы реализовать функцию
SERIAL будет сам заполнять client_id
поэтому просто
INSERT INTO customers(phones) VALUES(%s);