Je crée une base de données SQLite sous Android.
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " ("
+ KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NAME + " TEXT NOT NULL, "
+ KEY_WORKED + " INTEGER, "
+ KEY_NOTE + " INTEGER);");
Est-il possible de définir la valeur par défaut de KEY_NOTE
(qui est un entier) pour chaque ligne créée comme étant 0
(zéro)? Si tel est le cas, quel devrait être le code correct?.
Utilisez le mot-clé SQLite 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);");
Ce lien est utile: http://www.sqlite.org/lang_createtable.html
Une colonne avec une valeur par défaut:
CREATE TABLE <TableName>(
...
<ColumnName> <Type> DEFAULT <DefaultValue>
...
)
<DefaultValue>
est un espace réservé pour un:
(
expression )
Exemples:
Count INTEGER DEFAULT 0,
LastSeen TEXT DEFAULT (datetime('now'))
Il se trouve que je commence tout juste à apprendre le codage et que j'avais besoin de quelque chose de similaire à ce que vous venez de demander dans SQLite (J'utilise [SQLiteStudio] (3.1.1)).
Il arrive que vous deviez définir la colonne 'contrainte' as ' Non Null 'saisissez ensuite la définition de votre choix en utilisant' Par défaut '' Contrainte 'ou cela ne fonctionnera pas (. Je ne sais pas s’il s’agit d’un objet SQLite ou du programme requis ).
Voici le code que j'ai utilisé:
CREATE TABLE <MY_TABLE> (
<MY_TABLE_KEY> INTEGER UNIQUE
PRIMARY KEY,
<MY_TABLE_SERIAL> TEXT DEFAULT (<MY_VALUE>)
NOT NULL
<THE_REST_COLUMNS>
);