powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Нужно записывать уникальные строки в sqlite.
3 сообщений из 3, страница 1 из 1
Нужно записывать уникальные строки в sqlite.
    #38467362
kalombo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно записать скриптом около 30000 строк в базу при этом, чтобы они все были уникальные. На данный таблица у меня выглядит так:
Код: sql
1.
CREATE TABLE "plugin" ("id" INTEGER NOT NULL PRIMARY KEY, "link" VARCHAR(255) NOT NULL)



Я делаю сначала SELECT запрос, проверяю, есть ли строка в базе и если её нет делаю insert. Мне кажется, это неправильно и можно сделать как-то по-другому, побыстрее.
...
Рейтинг: 0 / 0
Нужно записывать уникальные строки в sqlite.
    #38467441
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы создал уникальный индекс по строке и вызывал insert or ignore
но, учитывая локальность и встроенность движка, выиграл бы на этом, наверное, немного)) кода только меньше
зы. ну и для начала прочитать, какие есть нативные типы столбцов в sqlite тоже не повредит))
...
Рейтинг: 0 / 0
Нужно записывать уникальные строки в sqlite.
    #38467612
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalomboЯ делаю сначала SELECT запрос, проверяю, есть ли строка в базе и если её нет делаю insert. Мне кажется, это неправильно и можно сделать как-то по-другому, побыстрее.нет. Нельзя.
Если тебе нужна уникальность значения в массиве, то единственный способ узнать что значение уже есть или его еще нет - просмотреть массив. Как бы ты ни извращался обходного пути нет.

А если вопрос стоит: "как-бы это сделать с минимумом кода" то:
1)
Код: sql
1.
2.
3.
4.
CREATE TABLE "plugin" ("id" INTEGER NOT NULL PRIMARY KEY, "link" VARCHAR(255) NOT NULL unique);

insert or ignore into plugin (link) value ('aaa');
.....



2)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE "plugin_t" ("link" VARCHAR(255) NOT NULL  PRIMARY KEY);

insert into plugin_t (link) value ('aaa');
.....

CREATE TABLE "plugin" ("id" INTEGER NOT NULL PRIMARY KEY, "link" VARCHAR(255) NOT NULL);
insert into plugin(link) select distinct link from plugin_t;
drop table plugin_t;



Но по скорости эти все способы будут примерно одинаковы и близки к примитивному "проверить-вставить". Потому что в итоге они делают все тоже самое.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Нужно записывать уникальные строки в sqlite.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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