SQLite: используйте синтаксис x'ABC при создании таблицы
При вставке значений в таблицу SQLite можно использовать синтаксис типа x '41' (=A). Это полезно, когда вы пытаетесь вставить специальные символы, такие как вкладки, новые строки и т. д.
sqlite> CREATE TABLE test(aColumn VARCHAR(10));
sqlite> INSERT INTO test VALUES(x'0a41420a');
sqlite> SELECT * FROM test;
AB
sqlite>
Доступен ли этот синтаксис и для определения имени таблицы?
Что-то вроде
sqlite> CREATE TABLE x'0a41420a'(aColumn VARCHAR(10));
Error: near "x'0a41420a'": syntax error
Не работает.
1 ответ:
Синтаксис
x'..'задаетBlob-литерал . Таким образом, значение в таблице - это не строка, а большой двоичный объект, если только вы явно не преобразуете его в строку:INSERT INTO test VALUES(CAST(x'0a41420a' AS TEXT));В SQL идентификаторы (например, имена таблиц и столбцов) могут быть заключены в двойные кавычки. Внутри идентификатора в кавычках допускаются все символы (кроме нулевого байта) (но двойные кавычки должны быть удвоены):
sqlite> CREATE TABLE " AB "(cols); sqlite> SELECT hex(name) FROM sqlite_master; 0A41420A
Comments