LINUX.ORG.RU

Дополнительный (не PRIMARY) ключ в SQLite


0

1

Вопрос такой.

Вот команда создания базы для MySql:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
 session_id varchar(40) DEFAULT '0' NOT NULL,
 ip_address varchar(45) DEFAULT '0' NOT NULL,
 user_agent varchar(120) NOT NULL,
 last_activity int(10) unsigned DEFAULT 0 NOT NULL,
 user_data text NOT NULL,
 PRIMARY KEY (session_id),
 KEY `last_activity_idx` (`last_activity`)
);

Нужно сделать такую же команду доя SQLite. Проблема в том, что не могу понять, как в SQLite создавать поле с дополнительным ключем (в данном случае last_activity_idx).

Команда для SQLite без строки с last_activity_idx выглядит так:

CREATE TABLE ci_sessions (
 session_id VARCHAR(40) DEFAULT 0, 
 ip_address VARCHAR(45) DEFAULT 0, 
 user_agent VARCHAR(120), 
 last_activity INTEGER DEFAULT 0, 
 user_data TEXT, 
 PRIMARY KEY (session_id)
);

Вопрос: как в синтаксисе SQLite прописать создание последнего ключевого поля KEY `last_activity_idx` (`last_activity`) ?

★★★★★

так вроде в mysql это просто создание индекса, если надо уникальный - просто допиши UNIQUE, если нет - создай отдельно через CREATE INDEX i1 ON ci_sessions( last_activity )

wota ★★
()

Неделя SQLite в Development? :)

KEY `last_activity_idx` (`last_activity`)

с какой целью создается этот ключ?

Harald ★★★★★
()
Ответ на: комментарий от wota

так вроде в mysql это просто создание индекса

Ага, то есть, в синтаксисе SQLite топикстартовая команда разбивается на две команды:

CREATE TABLE ci_sessions (
 session_id VARCHAR(40) DEFAULT 0, 
 ip_address VARCHAR(45) DEFAULT 0, 
 user_agent VARCHAR(120), 
 last_activity INTEGER DEFAULT 0, 
 user_data TEXT, 
 PRIMARY KEY (session_id)
);

CREATE INDEX last_activity_idx ON ci_sessions(last_activity);

Проблема решена, но так и не нашел, как в SQLite делать дополнительный индекс внутри CREATE TABLE.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от baverman

И прекращаться она не собирается.

Некоторые идиоты до сих пор думают, что поисковая выдача гугла для всех одинаковая.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Некоторые идиоты до сих пор думают, что поисковая выдача гугла для всех одинаковая.

google://sqlite how to create index даже у самых злостных дрочеров выдаст нужный результат первым.

baverman ★★★
()
Ответ на: комментарий от Xintrea

я не знаю какой извращенной фантазией нужно обладать, чтобы задать так вопрос, чтобы не найти ответ в гугле. конкретно в этом случае

gnunixon ★★★
()
Ответ на: комментарий от gnunixon

я не знаю какой извращенной фантазией нужно обладать, чтобы задать так вопрос, чтобы не найти ответ в гугле. конкретно в этом случае

Достаточно просто не знать SQL. Я SQL не знаю.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.