Я получил эту ошибку: SQL error (near "(": syntax error)
SQL error (near "(": syntax error)
create table IF NOT EXISTS demo ( code varchar(200) default substr(lower(hex(randomblob(32))),1,6) not null primary key );
Что не так с моим кодом?
Если вы используете DEFAULT с выражением вместо литерального значения, оно должно быть заключено в скобки.
DEFAULT
DEFAULT (substr(...))
С документация :
Предложение DEFAULT задает значение по умолчанию, которое будет использоваться для столбца, если пользователь не указал явно значение при выполнении INSERT. Если к определению столбца не добавлено явное предложение DEFAULT, значением по умолчанию для этого столбца является NULL. Явное предложение DEFAULT может указывать, что значением по умолчанию является NULL, строковая константа, константа BLOB-объекта, число со знаком, или любое выражение константы, заключенное в скобки . Значением по умолчанию также может быть одно из специальных независимых от регистра ключевых слов CURRENT_TIME, CURRENT_DATE или CURRENT_TIMESTAMP. В целях предложения DEFAULT выражение считается константой, если оно не содержит подзапросов, ссылок на столбцы или таблицы, связанных параметров или строковых литералов, заключенных в двойные кавычки вместо одинарных кавычек.
Попробуйте установить ненулевое значение перед установкой значения по умолчанию:
create table IF NOT EXISTS demo ( code varchar(200) primary key not null default substr(lower(hex(randomblob(32))),1,6) );