Неверные типы данных sqlite - PullRequest
       0

Неверные типы данных sqlite

0 голосов
/ 12 февраля 2020

Я сделал опечатку при создании таблицы, тип данных для имени должен быть TEXT: CREATE TABLE mytab (имя EXT, num INT);

Ошибок не было обнаружено, и вставки и выбор были сделаны ОК: INSERT INTO mytab (name, num) VALUES («Ким», 42); SELECT * FROM mytab;

При указании недопустимого типа данных это значение по умолчанию для BLOB-объекта не указан?

1 Ответ

1 голос
/ 12 февраля 2020

SQLite действительно не имеет недопустимых типов данных. На самом деле он вообще не имеет данных типов , по крайней мере, в общепринятом смысле этого термина тип данных .

Я думаю " Определение Сходство столбца"является частью документации SQLite, которая отвечает на ваш вопрос. Ваш столбец типа "EXT" - это NUMERI C. Вот правила.

  1. Если объявленный тип содержит строку "INT", то ему присваивается сходство INTEGER.
  2. Если объявленный тип столбца содержит какую-либо из строк " CHAR "," CLOB "или" TEXT ", тогда этот столбец имеет сходство TEXT. Обратите внимание, что тип VARCHAR содержит строку «CHAR» и, таким образом, ему присваивается сходство TEXT.
  3. Если объявленный тип для столбца содержит строку «BLOB» или если тип не указан, столбец имеет сходство BLOB.
  4. Если объявленный тип для столбца содержит какие-либо из строк «REAL», «FLOA» или «DOUB», то столбец имеет РЕАЛЬНОЕ сходство.
  5. В противном случае сходство равно NUMERI C.

Эта страница также определяет affinity .

Сходство типов столбца является рекомендуемым типом для данных, хранящихся в этом столбце. Важной идеей здесь является то, что тип рекомендуется, а не требуется. В любом столбце по-прежнему могут храниться данные любого типа. Просто некоторые столбцы, при выборе, предпочтут использовать один класс хранения над другим. Предпочтительный класс хранения для столбца называется его «сродством». [Акцент добавлен]

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