SQLite

2013-07-12 38 views
85

Bir tamsayı sütununun varsayılan değerini ayarla Android'de bir SQLite veritabanı oluşturuyorum.SQLite

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

o 0 (sıfır) olduğu oluşturulan her satır için KEY_NOTE varsayılan değeri (bir tamsayı olan) ayarlamak mümkün mü? Eğer öyleyse, doğru kod ne olmalıdır.

cevap

179

Kullanım SQLite anahtar kelime 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);"); 

Bu bağlantı faydalıdır: http://www.sqlite.org/lang_createtable.html

1

varsayılan değerle bir sütun:

    :

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

    <DefaultValue> bir için bir yer tutucudur

  • değeri değişmez
  • ( ifadesi )

Örnekler:

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

Ben sadece kodlama öğrenmeye başladım ve sadece SQLite'ta istediler gibi benzer gerekli olur (I´m using [SQLiteStudio] (3.1.1)).

Size tanımlamak gerektiğini olur sütun en 'Constraint' 'Boş Değil ardından 'Constraint' ya da işe yaramaz (I don ' 'Varsayılan' kullanarak istediğiniz tanımını girme gibi Bu bir SQLite veya program gereksinimi ise) bilmiyorum. İşte

kullandığım kod şudur: Bu MySQL kullanılan aynı mantık var

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

; bir null sütunun varsayılan değeri zaten NULL, bu nedenle bir varsayılan değeri ayarlamak için sütunun null olmayan olduğunu ima eder. NULL olmayan bir sütunda bir varsayılan belirtirseniz, NOT NULL, varsayılan NULL değerleri eklendiğinde sizi şaşırtabilirsiniz. – Chosun