Android sqlite多表

发布于 2024-12-12 21:30:42 字数 429 浏览 0 评论 0原文

我想在 sqlite 数据库中创建 2 个表。我将数据库从模拟器拉到电脑,但无法创建第二个表,只是第一个表已成功创建。我可以看到表创建成功或者数据还没有输入吗?或者我必须先输入数据,然后我可以通过先从模拟器中提取数据库来手动查看它?

这是我创建多个表的代码

db.execSQL("CREATE TABLE almag (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, jekel TEXT);");
db.execSQL("CREATE TABLE score (_id INTEGER PRIMARY KEY AUTOINCREMENT, score INTEGER, userId INTEGER FOREIGN KEY REFERENCES almag (_id));"); //create table score

I want to create 2 tables in a sqlite db. I pulled the db from emulator to pc but the second table can't be created just first table was created successfully. Can I see the table successes to be created or not even the data has not been entered? Or I've to enter the data first then I can see it manually by pulling the db from emulator first?

Here is my code to create multiple table

db.execSQL("CREATE TABLE almag (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, jekel TEXT);");
db.execSQL("CREATE TABLE score (_id INTEGER PRIMARY KEY AUTOINCREMENT, score INTEGER, userId INTEGER FOREIGN KEY REFERENCES almag (_id));"); //create table score

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

此生挚爱伱 2024-12-19 21:30:42

我已经解决了这个问题,要在 android 2.2 中添加外键,只需添加这些代码

public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE almag (_id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, jekel TEXT);");
    db.execSQL("CREATE TABLE score (_id INTEGER PRIMARY KEY AUTOINCREMENT, score INTEGER, userId INTEGER NOT NULL, FOREIGN KEY (userId) REFERENCES almag(_id) ON DELETE CASCADE);"); //create table score
    db.execSQL("PRAGMA foreign_keys = ON;");
}

参考 http:// /panierter-pinguin.de/blog/?p=138

I already solved it, to add foreign key in android 2.2 just need to add these code

public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE almag (_id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, jekel TEXT);");
    db.execSQL("CREATE TABLE score (_id INTEGER PRIMARY KEY AUTOINCREMENT, score INTEGER, userId INTEGER NOT NULL, FOREIGN KEY (userId) REFERENCES almag(_id) ON DELETE CASCADE);"); //create table score
    db.execSQL("PRAGMA foreign_keys = ON;");
}

reference http://panierter-pinguin.de/blog/?p=138

任性一次 2024-12-19 21:30:42

要从数据库手动查看数据(非编程),您可以使用 Firefox 的 SQLiteManager 插件

To see the data manually (not programmatic) from database you can use SQLiteManager plugins of Firefox

梦开始←不甜 2024-12-19 21:30:42

在这种情况下,db.execSQL(Table_CREATE_SQL) 应该可以正常工作,但它无法返回任何数据,但如果 SQL 字符串无效,它会抛出 SQLException。

您可以拉出 DB &使用 SQLite 浏览器 检查表。

The db.execSQL(Table_CREATE_SQL) should work fine in this case but it has no means to return any data, however it throws SQLException if the SQL string is invalid.

You can pull out the DB & use SQLite browser to check the tables.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文