Итак ... если вы ожидаете, что sqlite будет действовать так же, как, скажем, postgres или oracle или другой RDMS, вы обожжетесь.У него есть свои небольшие особенности, и стоит потратить время на изучение документации, чтобы понять, как она работает.В этом случае очень важно описание типов данных .
Каждое значение, хранящееся в таблице, имеет свой собственный связанный тип.Тип столбца (сходство AKA) - это просто предпочтительный тип хранения значений;если что-то можно без потерь преобразовать в желаемый тип, это так, в противном случае используется исходный тип.В этом случае, поскольку вы видите X'...'
значений, которые являются литералами BLOB-объектов, столбец используется для хранения BLOB-объектов произвольных байтов, а не строк Unicode.
Тип varchar(128)
такой, посколькув нем есть строка char
, которая рассматривается как сходство столбцов sqlite TEXT
.BLOB-объекты не могут быть преобразованы в текстовые строки, поэтому значения BLOB-объектов в таблице сохраняются без преобразования и отображаются в виде литерала BLOB-объекта .dump
.(Плюс ограничения длины, такие как (128)
, игнорируются в любом случае.)