crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> SQLite - есть ли средства автонумерации?, типа генератора в других БД
Litkevich Yuriy
  опции профиля:
сообщение 29.4.2008, 8:50
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Есть ли возможность в SQLite автоматически задавать значение определенного поля у вставляемой записи, по аналогии с парой генератор/"тригер на вставку" в Firebird?
Если да, объясните как это сделать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 29.4.2008, 10:02
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


В SQLite есть автоинкрементный тип столбца.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.4.2008, 10:20
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


а ка его задать?
у меня сейчас так таблица создана:
CREATE TABLE APPUSER
(
  F_ID        INT,        /* Код пользователя - Первичный ключ */
  F_LOGIN    VARCHAR(10),    /* логин */
  F_PSWD    VARCHAR(10),    /* пароль */
  F_FIRSTNAME    VARCHAR(30),    /* имя */
  F_LASTNAME    VARCHAR(30)    /* Фамилия */
);

надо для столбца F_ID при в ставке автоматом нумеровать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 29.4.2008, 11:24
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(Litkevich Yuriy @ 29.4.2008, 11:20) *
а ка его задать?
у меня сейчас так таблица создана:
CREATE TABLE APPUSER
(
  F_ID        INT,        /* Код пользователя - Первичный ключ */
  F_LOGIN    VARCHAR(10),    /* логин */
  F_PSWD    VARCHAR(10),    /* пароль */
  F_FIRSTNAME    VARCHAR(30),    /* имя */
  F_LASTNAME    VARCHAR(30)    /* Фамилия */
);

надо для столбца F_ID при в ставке автоматом нумеровать

В запросе скажи F_ID INTEGER PRIMARY KEY и по умолчанию он будет автоинкремент
если не будет скажи F_ID INTEGER PRIMARY KEY AUTOINCREMENT
http://sqlite.org/lang_createtable.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.4.2008, 11:27
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


понял спасибо, и тригеров не надо-гут :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 29.4.2008, 13:11
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Ни триггеров ни ХП - бо не поддерживаются. :)

Сообщение отредактировал Tonal - 29.4.2008, 13:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.4.2008, 13:18
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


тригера поддерживаются (CREATE TRIGGER), хотя я не вкурсе, что там Qt'я с собой ставили, я специально ничего не ставил может у меня и не поддерживаются :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 29.4.2008, 16:50
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(Litkevich Yuriy @ 29.4.2008, 14:18) *
тригера поддерживаются (CREATE TRIGGER), хотя я не вкурсе, что там Qt'я с собой ставили, я специально ничего не ставил может у меня и не поддерживаются :)


Все поддерживается как надо, sqlite не имеет сервера и его можно тупо подлинковать статически или динамически (или подлинковаться прямо к исходникам). Не думаю что TrollT нарочно что то из исходников вырезали ;)

Цитата(Tonal)
Ни триггеров ни ХП - бо не поддерживаются.

А что подразумевалось под ХП - бо?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.4.2008, 16:56
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ХП-хранимые процедуры,
бо-ибо
:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 30.4.2008, 7:36
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


О, триггера появились. Прикольно.
А не в курсе, можно у них калбек установить на те события, которые триггерами обрабатываются?
Тогда бы вместо триггеров и ХП можно было бы просто свои функции подсунуть.
Нашёл, есть: sqlite3_update_hook, sqlite3_commit_hook, sqlite3_rollback_hook.

Хотя в этом есть одна засада - если с базой предполагается работать из нескольких систем программирования, то в каждой придётся дублировать код этих функций...

Сообщение отредактировал Tonal - 30.4.2008, 7:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 22:27