2013-07-12 7 views
85

Tworzę bazę danych SQLite w systemie Android.Ustaw domyślną wartość kolumny liczb całkowitych SQLite

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" 
    + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
    + KEY_NAME + " TEXT NOT NULL, " 
    + KEY_WORKED + " INTEGER, " 
    + KEY_NOTE + " INTEGER);"); 

Czy to możliwe, aby ustawić domyślną wartość KEY_NOTE (co jest liczbą całkowitą) dla każdego wiersza utworzony za 0 (zero)? Jeśli tak, jaki powinien być poprawny kod.

Odpowiedz

179

Użyj SQLite kluczowe default

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" 
    + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
    + KEY_NAME + " TEXT NOT NULL, " 
    + KEY_WORKED + " INTEGER, " 
    + KEY_NOTE + " INTEGER DEFAULT 0);"); 

Ten link jest przydatny: http://www.sqlite.org/lang_createtable.html

1

Kolumna z wartości domyślnej:

CREATE TABLE <TableName>(
... 
<ColumnName> <Type> DEFAULT <DefaultValue> 
... 
) 

<DefaultValue> jest symbolem zastępczym dla:

  • Wartość dosłowna
  • ( wyrażenie )

Przykłady:

Count INTEGER DEFAULT 0, 
LastSeen TEXT DEFAULT (datetime('now')) 
1

Zdarza się, że jestem dopiero zaczynają uczyć się kodowania i musiałem podobnie jak przed chwilą zapytał SQLite (I´m using [SQLiteStudio] (3.1.1)).

Zdarza się, że trzeba zdefiniować kolumny „Constraint” jako „Not Null” następnie wprowadzając żądaną definicję używając „Domyślne” „Constraint” czy to nie będzie działać (I don” t wiedzieć, czy jest to SQLite lub wymaganie programu).

Oto kod użyłem:

CREATE TABLE <MY_TABLE> (
<MY_TABLE_KEY>  INTEGER UNIQUE 
           PRIMARY KEY, 
<MY_TABLE_SERIAL> TEXT  DEFAULT (<MY_VALUE>) 
           NOT NULL 
<THE_REST_COLUMNS> 
); 
+0

To ta sama logika stosowane w MySQL; domyślna kolumna z wartością zerową ma już wartość NULL, więc ustawienie wartości domyślnej w przeciwnym razie oznaczałoby, że kolumna jest nie-nullable. Jeśli podasz wartość domyślną dla kolumny z wartością zerową bez deklarowania jej NIE ZEROWU, może wprowadzić Cię w zakłopotanie, gdy wstawiane są domyślne wartości NULL. – Chosun

Powiązane problemy