|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
Всем привет нужна табличка для хранения целых чисел выполняться над ней будут только две операции поиск и вставка Код: sql 1. 2. 3.
табличка называется Loaded с колонкой Id в которой хранится некий идентификатор вопрос: хотел бы ограничить тип вставляемых в табличку данных потому что если создавать табличку так Код: sql 1.
то помимо целых можно вставлять все что угодно но если создавать табличку так Код: sql 1.
то вставить можно только целые и это мне подходит вопрос в том повлияет ли это как нибудь на что нибудь ? тоесть помимо того что я внес возможность ограничить тип данных не навредил ли я чему то другому ? спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 18:16 |
|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
jytuiyjht7jgyfвопрос: хотел бы ограничить тип вставляемых в табличку данных Это не SQLite путь. Хочешь чтобы твоя таблица имела именно тот тип данных в колонке который заявлен - бери другую базу. http://www.sqlite.org/datatype3.html jytuiyjht7jgyfно если создавать табличку так Код: sql 1.
то вставить можно только целые и это мне подходит вопрос в том повлияет ли это как нибудь на что нибудь ? тоесть помимо того что я внес возможность ограничить тип данных не навредил ли я чему то другому ?В принципе нет, не повредил ничему. Даже помог слегка - у тебя теперь есть кластерный индекс на это поле, хоть ты это и не заказывал явно. Но данный трюк сработает только с одним полем в таблице и только с целыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 21:42 |
|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
White Owl, Использование Primary Key для хранение данных не есть правильно, Primary Key служит для однозначной идентификации записи в таблице, кроме того так как Primary Key уникален то два одинаковых значения в такое поле не вставить, поэтому лучше использовать Check Constraint Код: sql 1. 2. 3. 4.
при попытке вставить не integer значение будет ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2014, 11:01 |
|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
pit_alex, Судя по задаче у него цель - хранить уникальные идентификаторы. классическая табличка-событий показывающая что ID-объекта обработан. А вставлять два одинаковых значения в таблицу из одной колонки - это как-то странно. Ваш CONSTRAINT - это лишняя нагрузка по CPU + жрет места лишняя колонка с синтетическим ключем id, который никак не используется. Можно подробнее кто и где написал что хранить данные в PK плохо - чем PK так провинился? технически это такой-же атрибут, только с констрейнами not null + unique. для данной задачи подходит идеально. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2014, 13:40 |
|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
PPA, Для уникальных идентификаторов существует unique constraint, иметь таблицу из одной колонки с Primary Key и использовать его для задачи ограничения типа вводимых данных тоже как то странно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2014, 15:02 |
|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
к тому же при использовании PPAклассическая табличка-событий показывающая что ID-объекта обработан. врядли будут вставляться не integer значения , а колонку id добавил по привычке к примеру check constraint она не относится :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2014, 15:11 |
|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
действительно табличка у меня для уникальных id неких выполненных задач ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2014, 15:53 |
|
ограничить тип данных в колонке
|
|||
---|---|---|---|
#18+
pit_alexк тому же при использовании врядли будут вставляться не integer значения , а колонку id добавил по привычке к примеру check constraint она не относится :-) 1. Даже если будут вставляться всегда целые значения - на обработку чека нужно время. это ведь аналог триггера. 2. В sqlite если создать таблицу без PRIMARY KEY то sqlite автоматом добавит еще одну колонку - синтетический rowid. Попробуйте создать таблички CREATE TABLE IF NOT EXISTS Loaded1 (Id INTEGER) CREATE TABLE IF NOT EXISTS Loaded2 (Id INTEGER PRIMARY KEY) и посмотрите их структуру. можно еще накидать туда по несколько лимонов записей и замерить время/размер только в последней версии 3.8.2 приделали фичу - таблички без rowid-а http://sqlite.org/withoutrowid.html ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2014, 16:04 |
|
|
start [/forum/topic.php?fid=54&msg=38526887&tid=2008831]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 407ms |
0 / 0 |