SQLite.swift устанавливает для всех полей значение NOT NULL

Версия 11.4

Все поля моей таблицы Sqlite имеют значение NOT NULL.

Я пробовал следующее в команде создания таблицы.

t.column(miny, defaultValue: nil)

но все поля по-прежнему определены «НЕ NULL»

Как сделать так, чтобы поле принимало значение NULL?


person Tybion    schedule 20.02.2018    source источник


Ответы (2)


Дох! - нашел ответ, просматривая тестовые скрипты на github, - потом заметил комментарий в документации.

Нужно сделать типы необязательными, используя '?' - как и в последних 4 полях Double в этом примере..

    let title = Expression<String>("title")
    let descr = Expression<String>("descr")
    let miny = Expression<Double?>("miny") 
    let minx = Expression<Double?>("minx")
    let maxy = Expression<Double?>("maxy")
    let maxx = Expression<Double?>("maxx")
person Tybion    schedule 20.02.2018

Вы пробовали следующий синтаксис:

t.column(miny)

Из документации по SQLite:

Значение по умолчанию для каждого столбца равно NULL.

Таким образом, вам не нужно указывать ничего лишнего в определении столбца, чтобы он мог принимать значение NULL, потому что значение по умолчанию уже равно NULL.

person Tim Biegeleisen    schedule 20.02.2018