Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / CONSTRAINT sqlite_autoindex / 6 сообщений из 6, страница 1 из 1
05.11.2009, 20:10
    #36293276
CONSTRAINT sqlite_autoindex
Здравствуйте, подскажите пожалуйста, для чего он нужен вообще,нигде не могу найти инфу

к примеру я создаю такую таблицу
Код: plaintext
1.
2.
3.
4.
CREATE TABLE "cache_time" (
  "cache_time_name" varchar( 20 ) NOT NULL DEFAULT '', 
  "cache_time_value" INTEGER UNSIGNED NOT NULL DEFAULT '0', 
  PRIMARY KEY ("cache_time_name"));

все нормально работает, но после редактирования программой sqlite expert таблица становится вот такой
Код: plaintext
1.
2.
3.
4.
CREATE TABLE "cache_time" (
  "cache_time_name" varchar( 20 ) NOT NULL DEFAULT '', 
  "cache_time_value" INTEGER UNSIGNED NOT NULL DEFAULT '0', 
  CONSTRAINT "sqlite_autoindex_cache_time_1" PRIMARY KEY ("cache_time_name"));

тут добавилось CONSTRAINT "sqlite_autoindex_cache_time_1" что это такое?
...
Рейтинг: 0 / 0
06.11.2009, 00:22
    #36293593
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CONSTRAINT sqlite_autoindex
Это имя индекса первичного ключа.
Когда ты создаешь первичный ключ на таблицу, система тебе самостоятельно создает еще и индекс на поля первичного ключа. Этот индекс (как и созданные вручную) имеет имя, но обычно его никто не видит, система задает это имя самостоятельно. А менеджер (sqlite expert) это имя из базы читает и показывает.
...
Рейтинг: 0 / 0
06.11.2009, 01:45
    #36293637
CONSTRAINT sqlite_autoindex
а когда создается числовой первичный ключ, автоинкрементный в sqlite
CREATE TABLE IF NOT EXISTS downs (
downs_id INTEGER PRIMARY KEY NOT NULL, .......

индекс ведь тоже создается автоматически, правильно?
в данном случае sqlite expert уже не показывает индекс
...
Рейтинг: 0 / 0
06.11.2009, 11:39
    #36294198
Dash Rendar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CONSTRAINT sqlite_autoindex
нет, в этом случае вы просто указываете, что столбец является первичным ключом. а в первом варианте создается объект БД "первичный ключ" (который может быть и составным).

--
С уважением.
...
Рейтинг: 0 / 0
06.11.2009, 17:42
    #36295542
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CONSTRAINT sqlite_autoindex
Максим-Иванова когда создается числовой первичный ключ, автоинкрементный в sqlite
CREATE TABLE IF NOT EXISTS downs (
downs_id INTEGER PRIMARY KEY NOT NULL, .......

индекс ведь тоже создается автоматически, правильно?Нет. В этом (и только в этом) случае индекс не создается. INTEGER PRIMARY KEY это специальный случай при котором поле таблицы мапируется на внутреннюю колонку ROWID. В этом случае, значение поля является порядковым номером строки в таблице и соотвественно не требует индекса.
Короче, читай учебник: http://www.sqlite.org/lang_createtable.html
Четвертый абзац: The PRIMARY KEY attribute normally creates a UNIQUE index on the column or columns that are specified as the PRIMARY KEY. The only exception to this behavior is special INTEGER PRIMARY KEY column, described below.
И ниже, после заголовка: ROWIDs and the INTEGER PRIMARY KEY
...
Рейтинг: 0 / 0
06.11.2009, 18:12
    #36295651
CONSTRAINT sqlite_autoindex
спасибо, все понятно
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / CONSTRAINT sqlite_autoindex / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]