Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Функция с 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);