Не могу найти значения по умолчанию в SQLite, Swift - PullRequest
0 голосов
/ 02 мая 2018

Интересно, как бы я использовал значение по умолчанию для логического значения в SQLite в swift. Я использую следующую библиотеку: https://github.com/stephencelis/SQLite.swift У меня есть запрос, который не будет выполнен, если я не использую все значения.

Я делаю это в цикле:

let insert = table.insert(name <- names[i])

Ошибка отлова:

NOT NULL constraint failed: table.bool (code: 19)

Моя проблема здесь в том, что я хочу, чтобы значение bool было значением по умолчанию NULL.

Я попытался создать базу данных со значением по умолчанию, например:

let bool = Expression<Bool?>("bool") 

Так, что я могу сделать, чтобы создать значения по умолчанию в SQLite в swift?

1 Ответ

0 голосов
/ 02 мая 2018

Ошибка ясно говорит о том, что в этом столбце не может быть нулевого значения, поэтому установка пустого значения по умолчанию не имеет смысла. Итак, ваш первый шаг - изменить определение базы данных, чтобы разрешить null (если это возможно).

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

Что касается значений по умолчанию, я бы быстро решил эту проблему путем перемещения вставки в отдельную функцию и использовал бы поддержку swift для значений по умолчанию для параметров.

Пример

func insertStuff(withName name: String, flag: Bool = false) {
   //db-code
}

, а затем вызвать его с / без всех параметров

insertStuff(withName: "abc", flag: true)
insertStuff(withName: "edf")

Обновление
Если вы хотите, чтобы столбец был равен нулю, вы можете использовать необязательный параметр

func insertStuff(withName name: String, flag: Bool? = nil) {
   //db-code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...