相关疑难解决方法(0)

Android中使用的SQLite版本?

Android中使用的SQLite版本是什么?

原因:我想知道如何处理模式迁移.较新的SQLite版本支持"ALTER TABLE"SQL命令,这将节省我不得不复制数据,删除表,重新创建表和重新插入数据.

database migration sqlite schema android

266
推荐指数
4
解决办法
9万
查看次数

从SQLite表中删除列

我有一个问题:我需要从我的SQLite数据库中删除一列.我写了这个查询

alter table table_name drop column column_name 
Run Code Online (Sandbox Code Playgroud)

但它不起作用.请帮我.

sql sqlite ddl

102
推荐指数
4
解决办法
10万
查看次数

SQLite修改列

我需要修改SQLite数据库中的列,但由于数据库已经在生产中,我必须以编程方式执行此操作.根据我的研究,我发现为了做到这一点,我必须做到以下几点.

  • 使用新架构创建新表
  • 将数据从旧表复制到新表
  • 放旧桌子
  • 将新表重命名为旧表名

对于应该相对容易的事情而言,这似乎是一项荒谬的工作量.有没有更简单的方法?我需要做的就是更改现有列的约束并为其指定默认值.

sqlite alter-table

44
推荐指数
3
解决办法
6万
查看次数

使用sqlite更改表删除列语法错误

这是我的表的架构:

create table LPCG(ID integer primary key, PCG text, Desc text, test text);
Run Code Online (Sandbox Code Playgroud)

我希望删除列"test",因此使用命令:

alter table LPCG drop column test;
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误消息:

Error: near "drop": syntax error
Run Code Online (Sandbox Code Playgroud)

有人可以帮我纠正我的错误吗?

另一个问题是:我理解ID是主要的键属性.我可以删掉那个专栏吗?如果没有,是否有人使用过的解决方法?

在此先感谢您的帮助.

sqlite alter-table primary-key

15
推荐指数
1
解决办法
1万
查看次数

Drop column Room迁移android

我有一个表服务器

@Entity(tableName = "servers")
data class ServerDto(

    @PrimaryKey
    @ColumnInfo(name = "server_id")
    var serverId: Long,

    @ColumnInfo(name = "address", defaultValue = "")
    var serverAddress: String,

    @ColumnInfo(name = "description", defaultValue = "")
    var serverDescription: String,

    @ColumnInfo(name = "file_segment")
    var fileSegment: Int

) : Serializable
Run Code Online (Sandbox Code Playgroud)

和一个表帐户

@Entity(tableName = "accounts", primaryKeys = ["server_id", "account_id"])
data class AccountDto(

    @ColumnInfo(name = "server_id")
    val serverId: Long,

    @ColumnInfo(name = "account_id")
    val accountId: Int,

  @ColumnInfo(name = "username", defaultValue = "")
    val username: String,

    @ColumnInfo(name = "password", defaultValue = "")
    val …
Run Code Online (Sandbox Code Playgroud)

migration kotlin android-studio android-room

5
推荐指数
2
解决办法
2078
查看次数

Rake db:migrate错误,表已存在

我无意间创建了一个不需要的迁移,所以我删除了文件,并在尝试运行rake db:migrate时创建了一个新的迁移,但我一直收到此错误。我正在使用SQlite3 gem和Ruby on Rails 4

StandardError: An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "categories" already exists: CREATE TABLE "categories" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "category_name" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NO
T NULL) D:/muse/db/migrate/20150830113519_create_categories.rb:3:in `change'
D:in `migrate'
ActiveRecord::StatementInvalid: SQLite3::SQLException: table "categories" already exists: CREATE TABLE "categories" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "category_name" varchar, "created_at" datetime NO
T NULL, "updated_at" datetime NOT NULL)
D:/muse/db/migrate/20150830113519_create_categories.rb:3:in `change'
D:in `migrate'
SQLite3::SQLException: table …
Run Code Online (Sandbox Code Playgroud)

sqlite dbmigrate ruby-on-rails-4

2
推荐指数
2
解决办法
4268
查看次数

重命名列名时出现 SQLITE 语法错误代码 1

我正在我的 Android 应用程序中迁移 Room 数据库。这是迁移代码:

static final Migration MIGRATION_1_2 = new Migration(1, 2) {
    @Override
    public void migrate(SupportSQLiteDatabase database) {
        database.execSQL("ALTER TABLE item RENAME itemInfoId TO itemId");
    }
};
Run Code Online (Sandbox Code Playgroud)

错误信息

android.database.sqlite.SQLiteException: near "itemInfoId": syntax error (code 1 SQLITE_ERROR): , while compiling: ALTER TABLE item RENAME itemInfoId TO itemId
Run Code Online (Sandbox Code Playgroud)

我也试过 SQL "ALTER TABLE item RENAME COLUMN itemInfoId TO itemId",同样的错误

android.database.sqlite.SQLiteException: near "COLUMN": syntax error (code 1 SQLITE_ERROR): , while compiling: ALTER TABLE item RENAME COLUMN itemInfoId TO itemId
Run Code Online (Sandbox Code Playgroud)

migration sqlite syntax android rename

2
推荐指数
1
解决办法
745
查看次数