Я пытаюсь добавить строку (сообщение, отправленную пользователем) в таблицу SQLite (сообщения). Мне нужно добавить новое сообщение с меткой времени, являющейся текущим временем и датой, а затем мне нужно вернуть идентификатор для этого нового сообщения.Вставка строки в таблицу SQLite
Мой код до сих пор (неполным, поскольку им не уверен, как вернуть идентификатор, и если им вставить правильную информацию):
def post_add(conn, username, message):
cursor = conn.cursor()
cursor.execute("INSERT INTO posts (timestamp, username, message) VALUES (CURRENT_TIMESTAMP,?,?)"
, (username, message))
db.commit()
В таблице:
CREATE TABLE posts (
id integer unique primary key autoincrement,
timestamp text default CURRENT_TIMESTAMP,
username text,
message text,
FOREIGN KEY(username) REFERENCES users(name)
);
В чем проблема? – skyline75489
Посмотрите на http://stackoverflow.com/questions/6242756/how-to-retrieve-inserted-id-after-inserting-row-in-sqlite-using-python для извлечения идентификатора последнего вставленного строка в sqlite. Что касается метки времени, поскольку у вас есть значение по умолчанию, вы можете опустить ее в запросе вставки, и она будет автоматически добавлена. – stellasia
@stellasia благодарит первую ссылку, помогаемую с возвратом. Я также должен установить ограничение длины для сообщения, которое будет отправлено, в результате чего, если сообщение длинное, оно не должно допускать вставки сообщения. Значит ли это, что мне не нужно добавлять CURRENT_TIMESTAMP в VALUES? –