Вверх ↑
Ответов: 1891
Рейтинг: 110
#1: 2007-06-10 03:01:49 ЛС | профиль | цитата
nesco, писал(а):
Alexbootch, Tad, какой надо правильно написать запрос INSERT INTO table VALUES(...), чтобы первое поле, например: id c AUTOINCREMENT'ом, автоматически увеличилось на один, если я изначально не знаю его значения?


nesco, если таблица к примеру такая:

CREATE TABLE SPISOK (ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,OPIS VARCHAR(50) NULL, COMMENT TEXT NULL);



И первый столбец в таблице имеет значение PRIMARY KEY AUTOINCREMENT, то при вставке данных в таблицу его (значение первого столбца записи, которую необходимо вставить) можно опускать, т.к. оно автоматом увеличивается, например, так:

INSERT INTO SPISOK ('OPIS','COMMENT') VALUES ('Это описание','Это комментарий')



nesco, писал(а):
Я понял так, что null для поля с AUTOINCREMENT'ом означает приращение на один


null он и в Африке null. Так нельзя писать

Если поле в таблице имеет значение PRIMARY KEY AUTOINCREMENT - оно не может быть равно null, т.к. первичные ключи не могут позволять значений NULL. Это означает что, подобно полям в ограничении UNIQUE, любое поле, используемое в ограничении PRIMARY KEY, должно уже быть объявлено NOT NULL.


nesco, писал(а):
Мне еще интересна концепция работы с базой из двух различных приложений (одно приложение открывает суточную базу и постоянное туда чего-то пишет, а второе, по мере надобности, обращается к этой суточной базе и считывает отобранные данные). Как это концептуально правильно оформить?


Здесь нет ничего сложного, только необходимо сделать так, что бы непосредственно при записи данных в таблицу другая программа не выполняла какие-либо транзакции с базой данных иначе данные могут не записаться. Более подробно для базы данных SQLite можно почитать здесь
карма: 0
%time%
0