как хранить синтаксис в sqlite - PullRequest
0 голосов
/ 09 декабря 2018

1.Какой тип данных должен использоваться для хранения таких данных, как группа = AB +?

 E/SQLiteLog: (1) near "group": syntax error SQLiteDatabase: 
 Error inserting 
 district=jhapa phone=9843284985 name=Tom group=AB+

Моя таблица в этом формате

CREATE TABLE IF NOT EXISTS `Doners` (\n" +
    "\t`name`\tTEXT,\n" +
    "\t`phone`\tNUMERIC,\n" +
    "\t`group`\tBLOB,\n" +
    "\t`district`\tTEXT\n" +
    ");";

1 Ответ

0 голосов
/ 09 декабря 2018

Для Android вы можете использовать - собственный SQL через SQLiteDatabase execSQL метод - удобство SQLiteDatabase insert семейство методов: -

  • insert (эффективно вставлять или игнорировать)
  • insertOrThrow (стандартная вставка)
  • insertWithOnConflict

При условии, что вы хотите вставить: -

  • Том в столбец name ,
  • 9843284985 в колонку phone ,
  • AB + в столбец group ,
  • jhapa

А это вариаble db является экземпляром класса SQliteDatabase, тогда: -

вы можете использовать: -

    db.execSQl("INSERT INTO `Doners` VALUES('Tom',9843284985,'AB+','jhapa')");
  • , отметив, что значение должно быть предоставлено длявсе определенные столбцы и значения должны быть в том порядке, в котором они были определены.

или вы можете использовать: -

    db.execSQL("INSERT INTO Doners (district,phone,name,`group`) VALUES ('jhapa','9843284985','Tom','AB+')");
  • Здесь вы указываетестолбцы, в которые будут помещены значения, вы можете указать их в том порядке, в каком вы хотите (значения будут вставлены в соответствии с порядком), вы также можете опустить столбцы (в зависимости от определения столбца)
    • ОпределениеДля столбца NOT NULL потребуется столбец и значение.Однако, если значение DEFAULT определено так же, как и NOT NULL, столбец можно опустить.

, вы можете использовать удобный метод вставки, например: -

    ContentValues cv = new ContentValues();
    cv.put("phone","9843284985");
    cv.put("name","Tom);
    cv.put("`group`","AB+");
    cv.put("district","jhapa");
    long rowid = db.insert("Doners",null,cv);
  • rowid будет rowid вставленной строки (уникальный идентификатор строки) или, если строка не была вставлена, то -1 .
    • удобный метод: -
    • он строит SQL от вашего имени
    • защищает от внедрения SQL
    • заключает значения соответственно
    • подходиткодирует byte [] в x'ff00fe ....... ', используемый SQL.
    • возвращает rowid (выполняет запрос с использованием last_insert_rowid ()).

в отношении: -

, какой тип данных должен использоваться для хранения данных, таких как group = AB +?

Из-за гибкости SQLite, вероятно, не имеет значения, какой тип назначен столбцу.То есть, за исключением rowid или псевдонима rowid (the_column INTEGER PRIMARY KEY делает the_column псевдонимом столбца rowid ), любой тип данных может храниться в любом типестолбца и для дальнейшего расширения типа гибкости может быть практически любым (ключевые слова и другие синтаксически сбивающие значения исключены).

Как таковой CREATE TABLE mytable (mycolumn RUMPLESTILTSKIN) допустим (столбец имеет числовое сходство). см. - Типы данных в SQLite версии 3

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