@00Artom00

Как задать колонке первоначальное значение?

Пробую себя в заполнении баз данных через телеграмм бота. Суть в том что бот запрашивает у пользователя ввести номер телефона(пока что вручную, а не через спец. прикрепление) в формате +375 XX XXXXXXX (Я просто из Беларуси) . Хочется реализовать : что бы пользователь вводил XX XXXXXXX , а в таблице было +375 XX XXXXXXX. Как задать колонке первоначальное значение +375, и как правильно "приплюсовать" введенное значение от пользователя. Для справки:
SQL изучаю недавно, пользуюсь PostgreSQL , так же только начал изучать GINO. Так что если кто поможет с решением, то укажите соответсвующий SQL запрос или как реализовывать в GINO
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
Zagir-vip
@Zagir-vip
Web dev, Game dev, app dev, Разработчик на Python!
Ну это же легко. Можно получить номер и добавить его к строке.
user_phone = "XXXX..." # номер пользователя
user_phone = f"+375 {user_phone}" # Получили +375 XXX... 
И добавляем номер в БД.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@romaro
Можно создать в постгресе функцию или процедуру, используя concat():
CREATE TABLE public.t (
	id serial4 NOT NULL,
	user_name varchar NULL,
	phone varchar NULL,
	CONSTRAINT t_pk PRIMARY KEY (id)
);

CREATE FUNCTION create_user (p_user_name varchar, p_phone varchar)
RETURNS int
LANGUAGE SQL
AS $$
	INSERT INTO t (
		user_name, phone
	) VALUES (
  		p_user_name, concat('+375', p_phone)
  	) RETURNING id;
  $$;


И дергать ее таким образом:
SELECT * FROM create_user('Иван', '7878785544');

Функция будет возвращать Id только что созданного пользователя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы