Доброго времени суток! Подскажите, необходимо добавлять в табличку всех пользователей бота.
(Использую - pytelegrambotapi) Реализовал это так:
conn = mysql.connector.connect(user='user', password='password',
host='localhost', database='xxx')
cursor = conn.cursor(buffered=True)
@bot.message_handler(commands=['start'])
def first(message):
global user_id
global nickname
global fn
global sn
user_id = message.from_user.id
nickname = message.from_user.username
fn = message.from_user.first_name
sn = message.from_user.last_name
add_allusers = (
'INSERT INTO allusers3 (nickname, name, second_name, telegram_id, dt) VALUES (%(nn)s, %(fn)s, %(sn)s, %(t_id)s, %(dtn)s)')
data_allusers = {
'nn': nickname,
'fn': fn,
'sn': sn,
't_id': user_id,
'dtn': datetime.datetime.now(),
}
cursor.execute(add_allusers, data_allusers)
conn.commit()
Как оформить проверку на уникальность по столбцу telegram_id?
Пытался как то так, к результату не пришел:
if cursor.execute('SELECT EXISTS(SELECT telegram_id FROM allusers3 WHERE telegram_id = ' + str(user_id) + ')'):
add_allusers = (
'INSERT INTO allusers3 (nickname, name, second_name, telegram_id, dt) VALUES (%(nn)s, %(fn)s, %(sn)s, %(t_id)s, %(dtn)s)')
data_allusers = {
'nn': nickname,
'fn': fn,
'sn': sn,
't_id': user_id,
'dtn': datetime.datetime.now(),
}
cursor.execute(add_allusers, data_allusers)
conn.commit()
else:
pass
То есть, необходимо чтобы проверялось, если есть такой айдишник в таблице, то ничего не делать. Если нет, то записать пользователя в таблицу