Sqlite установка значения по умолчанию в создании таблицы - PullRequest
4 голосов
/ 13 января 2010

Я написал что-то вроде

create table if not exists QuickTest (
id integer primary key NOT NULL,
a TEXT DEFAULT @0,
b TEXT,
c TEXT);

Я получаю ошибку при @ 0. Есть ли способ вставить параметры здесь или мне нужно жестко закодировать значение в? Мне обычно нравится использовать параметры при установке значений.

Ответы [ 3 ]

6 голосов
/ 15 января 2010

Вы должны использовать строковую константу или NULL.

http://www.sqlite.org/syntaxdiagrams.html#column-constraint

Ограничение DEFAULT определяет значение по умолчанию для использования при выполнении INSERT. Значением может быть NULL, строковая константа, число или константное выражение, заключенное в скобки. Значением по умолчанию также может быть одно из специальных независимых от регистра ключевых слов CURRENT_TIME, CURRENT_DATE или CURRENT_TIMESTAMP. Если значением является NULL, строковая константа или число, оно вставляется в столбец всякий раз, когда выполняется инструкция INSERT, в которой не указано значение для столбца. Если значением является CURRENT_TIME, CURRENT_DATE или CURRENT_TIMESTAMP, то текущая дата и / или время UTC вставляется в столбцы. Для CURRENT_TIME формат - ЧЧ: ММ: СС. Для CURRENT_DATE, ГГГГ-ММ-ДД. Формат для CURRENT_TIMESTAMP - «ГГГГ-ММ-ДД ЧЧ: ММ: СС».

5 голосов
/ 17 января 2010

Нельзя использовать параметры в выражении ddl (язык определения данных), только в выражении dml (язык манипулирования данными) и в операторах select допустимы параметры.

1 голос
/ 10 октября 2013

тест CREATE TABLE (идентификатор INTEGER DEFAULT -1, имя VARCHAR DEFAULT нет)

Выше sql создаст тест таблицы с двумя столбцами id и name При выполнении вставки для этой таблицы, если для идентификатора и имени не указаны значения, будет вставлено -1 для столбца идентификатора, а для столбца имени будет вставлено значение * *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...