В свете доработки FBManager-а
Вопрос знатокам сего чуда
Что значит объявление столбца "attribute"
CREATE TABLE "GENERAL_INFO" ("attribute" TEXT NOT NULL NULL ,"value" TEXT NULL );
Я вижу безсмыслицу - для колонки с условием NOT NULL дано значение по умолчанию NULL
Или как это ещё трактовать можно?
Вопрос по SQLite - объявление стобцов
Модератор: Модераторы
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Это означает, что insert\update не может вставить в поле значение NULL, но никакого дефолтного значения у поля нет.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
NOT NULL - запрещено присваивать полю NULL, второй NULL - нет дефолтного значения. Такой синтаксис...alexs писал(а):Меня смущает вот это - NOT NULL NULL
Я не нашёл второго NULL-а в официальной документации
Если бы присвоение NULL было разрешено, было бы как для второго поля. Тут еще надо помнить нюанс - если поле описано как TEXT, оно не обязательно содержит текст, там, вообще говоря, могут быть и числа, и даты...
Снег Север писал(а):если поле описано как TEXT, оно не обязательно содержит текст, там, вообще говоря, могут быть и числа, и даты...
У них там, по большому счёту, вообще всё текст...
Добавлено спустя 18 минут 32 секунды:
alexs
В общем, SQLite на такую конструкцию ругаться не будет (он и вообще некоторые проказы прощает, например выход размера сроки за пределы размеров строкового поля
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Насчёт проверки - да. Есть она. Специально моделировал.
Но вот для парсера - проблема. Как верно это разбирать?
Т.е. это недокументированная особенность, которая фактически противоположна выражению default?
Если так - то спасибо. Буду иметь введу. Сейчас я этот NULL пишу в DEFAULT.
Но вот для парсера - проблема. Как верно это разбирать?
Снег Север писал(а):второй NULL - нет дефолтного значения
Т.е. это недокументированная особенность, которая фактически противоположна выражению default?
Если так - то спасибо. Буду иметь введу. Сейчас я этот NULL пишу в DEFAULT.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
В общем - да, т.е. написать в CREATE TABLEalexs писал(а):Т.е. это недокументированная особенность, которая фактически противоположна выражению default?
aaa TEXT NOT NULL
(без DEFAULT) и
aaa TEXT NOT NULL NULL
даст одинаковый результат
