wie erstellen Sie zwei Tabellen in einer Datenbank
Bin versucht, erstellen Sie zwei Tabellen in einer Datenbank in sqlite-aber nur die erste Tabelle (sharelist) ist die Erstellung und der zweiten Tabelle (usedlist) ist nicht zu schaffen.
bitte helfen Sie mir...
public class createSqliteHelper extends SQLiteOpenHelper{
private DatabaseHelper DBHelper;
public static final String KEY_ROWID = "sy_id";
public static final String KEY_TITLE = "symbol";
public static final String KEY_POSITION = "position";
private static final String TAG = "createSqliteHelper";
private static final String DATABASE_NAME="tradely.db";
private static final String DATABASE_TABLE = "sharelist";
private static final String DATABASE_TABLE1 = "usedlist";
private static final int SCHEMA_VERSION=1;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
private static final String DATABASE_CREATE=("CREATE TABLE IF NOT EXISTS sharelist (_id INTEGER PRIMARY KEY AUTOINCREMENT, category TEXT);");
private static final String DATABASE_CREATE1=("CREATE TABLE IF NOT EXISTS usedlist( sy_id INTEGER PRIMARY KEY AUTOINCREMENT, symbol TEXT, position INTEGER, FOREIGN KEY (symbol) REFERENCES sharelist(_id);");
public createSqliteHelper(Context context) {
super(context, DATABASE_NAME, null, SCHEMA_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(DATABASE_CREATE);
db.execSQL(DATABASE_CREATE1);
}
catch(SQLiteException e) {
Log.e("createerr",e.toString());
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
android.util.Log.w("LunchList", "Upgrading database, which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS sharelist");
db.execSQL("DROP TABLE IF EXISTS usedlist");
onCreate(db);
}
- haben Sie eine logcat Fehler melden? habe es werfen eine Ausnahme?
- ja. Es wirft wie "12-18 19:12:13.338: ERROR/AndroidRuntime(930): Verursacht durch: android.Datenbank.sqlite.SQLiteException: no such table: usedlist: , beim kompilieren: SELECT * FROM usedlist ORDER BY-symbol"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihnen fehlen
)
zum Abschluss des zweitenCREATE TABLE
- Anweisung, so dass die Tabelle nicht erstellt, und Sie bekommen den Fehler zu finden.Haben Sie:
Und es muss sein:
Dies ist nicht das unmittelbare problem, aber möglicherweise müssen Sie bald um dies zu beheben: erstellen Sie eine TEXT-Spalte mit dem Namen
symbol
imusedlist
Tabelle. Ich vermute, aus den Namen der Spalte, die Sie speichern möchten, das stock-symbol in dieser Spalte. Abersymbol
als deklariert ist ein Fremdschlüssel, der auf eine Spalte mit dem Namen_id
, die ist eine ganze Zahl, in dersharelist
Tabelle.Wahrscheinlich ist es am besten, sich zu bewegen
symbol
in diesharelist
Tabelle, und erstellen Sie eine neue Spalte inusedlist
(sagen wirshare_id
) Referenzsharelist
.