Size: a a a

2019 December 08

SO

Simon Osipov in SPb Python
David Shiko
hmm, ну я читал, что id с primary key этo alias. Я ожидаю, что rowid будет выдаст всю строку таблиы (последнюю)
источник

DS

David Shiko in SPb Python
Да, я читал. Да оно все равно 0 возвращает, уж я явно не этого ожидал когда у меня 6 записей
источник

C

Combot in SPb Python
Мир Шумов has been banned! Reason: CAS ban.
источник

C

Combot in SPb Python
Фома Гурский has been banned! Reason: CAS ban.
источник

DS

David Shiko in SPb Python
Я нашел ответ. cursor.execute("SELECT last_insert_rowid() работает только если перед ним был инсерт, иначе 0.
🤬🤬
источник

MA

Maxim Afanasev in SPb Python
Ну, название last_insert_rowid как бы намекает.
источник

DS

David Shiko in SPb Python
Maxim Afanasev
Ну, название last_insert_rowid как бы намекает.
Ничто не мешает БД запоминать последнюю вставленную строку (даже после закрытия БД), она же на то и БД))
источник

MA

Maxim Afanasev in SPb Python
David Shiko
Ничто не мешает БД запоминать последнюю вставленную строку (даже после закрытия БД), она же на то и БД))
Полагаю, дело в том, что эту информацию нужно хранить в базе, а информацию о последней операции в рамках текущего соединения можно хранить на уровне приложения. В любом случае, это поведение явно задокументировано.
источник

DS

David Shiko in SPb Python
Maxim Afanasev
Полагаю, дело в том, что эту информацию нужно хранить в базе, а информацию о последней операции в рамках текущего соединения можно хранить на уровне приложения. В любом случае, это поведение явно задокументировано.
Я в доках к сожалению этого вообще не нашел.
Прочитал на каком то форуме. Да ещё на С (а я с С на вы))
источник

p

pragus in SPb Python
David Shiko
Ничто не мешает БД запоминать последнюю вставленную строку (даже после закрытия БД), она же на то и БД))
Так оно и делает )
источник

DS

David Shiko in SPb Python
pragus
Так оно и делает )
В рамках дискуссии ответ: нет😁
источник

p

pragus in SPb Python
Вообще, это относительно частая история с документацией, когда люди ожидают большего, чем написано.
источник
2019 December 09

DS

David Shiko in SPb Python
Всем привет. Столкнулся с такой задачей: sqlite3.
Как сделать 1 значение уникальным для 2 столбцов.
Например 1 имя не может быть сразу в 2 столбцах, женские имена и мужские (кроме иключений). Аналогично 1 id не может быть сразу в 2 столбцах, оплачено- не оплачено. Короче, radio button проверка.
источник

DS

David Shiko in SPb Python
Мне в голову пришла ммысль дать юзеру токен (когда он что то выбирает - токен становится False, при удалении токен становится True). Уверен, есть решения попроще. Возможность перехода из 1 состояние в другое тоже важна
источник

SO

Simon Osipov in SPb Python
Вам разово выполнить очистку или на постоянной основе check нужен?
источник

DS

David Shiko in SPb Python
Simon Osipov
Вам разово выполнить очистку или на постоянной основе check нужен?
на постоянной основе
источник

SO

Simon Osipov in SPb Python
А покажите DDL (скрипт, которым создаётся) таблицы
источник

DS

David Shiko in SPb Python
cursor.execute(
"""CREATE TABLE IF NOT EXISTS users_ids_table(
id INTEGER PRIMARY KEY,
users_ids INTEGER, UNIQUE(users_ids))""")

cursor.execute(
"""CREATE TABLE IF NOT EXISTS posts_table(
id INTEGER PRIMARY KEY,
message_content_type TEXT NOT NULL,
message_content TEXT NOT NULL,
message_caption TEXT,
message_likes_count INTEGER,
message_dislikes_count INTEGER,
message_users_likes_ids INTEGER NOT NULL,
message_users_dislikes_ids INTEGER NOT NULL,
UNiQUE(message_users_likes_ids, message_users_dislikes_ids))""")
источник

DS

David Shiko in SPb Python
Этот код никаких проверок не делает.
Там message_users_likes_ids и message_users_dislikes_ids не должны пересекаться
источник

SO

Simon Osipov in SPb Python
David Shiko
cursor.execute(
"""CREATE TABLE IF NOT EXISTS users_ids_table(
id INTEGER PRIMARY KEY,
users_ids INTEGER, UNIQUE(users_ids))""")

cursor.execute(
"""CREATE TABLE IF NOT EXISTS posts_table(
id INTEGER PRIMARY KEY,
message_content_type TEXT NOT NULL,
message_content TEXT NOT NULL,
message_caption TEXT,
message_likes_count INTEGER,
message_dislikes_count INTEGER,
message_users_likes_ids INTEGER NOT NULL,
message_users_dislikes_ids INTEGER NOT NULL,
UNiQUE(message_users_likes_ids, message_users_dislikes_ids))""")
Вы храните id одним большим текстом через запятую?
источник