Найти - Пользователи
Полная версия: AUTOINCREMENT в Sqlite3
Начало » Python для новичков » AUTOINCREMENT в Sqlite3
1
vsavelyev
Приветствую! подскажите плз на простом примере как указывается в Sqlite3 при создании таблицы программно AUTOINCREMENT? что-то никак не срабатывает…

cur.execute("""CREATE TABLE IF NOT EXISTS users (
id INT NOT NULL AUTOINCREMENT,
name TEXT NOT NULL,
pass TEXT NOT NULL,
revision INT, PRIMARY KEY(id))
""")
ZerG

 CREATE TABLE people (
   person_id INTEGER PRIMARY KEY AUTOINCREMENT,
   first_name text NOT NULL,
   last_name text NOT NULL
);

НО
“SQLite recommends that you should not use AUTOINCREMENT attribute because:

The AUTOINCREMENT keyword imposes extra CPU, memory, disk space, and disk I/O overhead and should be avoided if not strictly needed. It is usually not needed.”

Так что правильней будет

 CREATE TABLE IF NOT EXISTS room(room_id INTEGER PRIMARY KEY, name VARCHAR(25) NOT NULL, home_id VARCHAR(25) NOT NULL);
vsavelyev
ZerG
SQLite recommends that you should not use AUTOINCREMENT

как-то странно.. ведь если в ручную добавлять таблицу через DB Browser там есть такая возможность, соответственно как-то программно тоже должна быть такая возможность.. или сама БД не имеет никакого отношения к Sqlite3?
ZerG
Вы с закрытыми глазами читали мой ответ? ПОпробуйте еще раз с открытыми.
Таблица people
Но автоинкремент не рекомендуют использовать
vsavelyev
Не в ту сторону посмотрел.. спасибо, получилось).. только проблема не в AUTOINCREMENT как оказалось…

id INT PRIMARY KEY AUTOINCREMENT - пробовал так - не работает..
id INTEGER PRIMARY KEY AUTOINCREMENT - так все завелось) почему-то INT не понравился
ZerG
https://www.sqlite.org/datatype3.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB