sqlite alter table 在单个语句中添加多个列

发布于 2024-11-10 06:48:34 字数 130 浏览 3 评论 0原文

是否可以在 sqlite 的单个语句中更改表添加多个列? 以下内容将不起作用。

alter table test add column mycolumn1 text, add column mycolumn2 text;

Is it possible to alter table add MULTIPLE columns in a single statement in sqlite?
The following would not work.

alter table test add column mycolumn1 text, add column mycolumn2 text;

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

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

发布评论

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

评论(3

帅气称霸 2024-11-17 06:48:34

不,您必须一次添加一个。请参阅 SQLite 的 ALTER TABLE 文档 顶部的语法图:

ALTER TABLE语法

ADD 分支中没有循环,因此不允许重复。

No, you have to add them one at a time. See the syntax diagram at the top of SQLite's ALTER TABLE documentation:

ALTER TABLE syntax

There's no loop in the ADD branch so no repetition is allowed.

不顾 2024-11-17 06:48:34

到目前为止我唯一可能使用的是

BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT

注意有;故意使查询被读取为多行。

然后我运行这个查询并在运行时添加多个列...所以不不是在一行中,但是在一个查询中是可能的。

The only thing so far possible that I use is

BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT

Note that there are ; on purpose to make the query be read as multiple lines.

Then I run this query and get multiple columns added in on run... So no not in one line, but yes in one query its possible.

时光病人 2024-11-17 06:48:34

@mu 太短”的答案是正确的。提供使用 SQL 中的事务功能添加多个列的优化解决方案。

String alterTableQuery = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN ";
List<String> newColumns = ..// Your new columns

db.beginTransaction();
for (String column : newColumns){
    db.execSQL(alterTableQuery + column +  " VARCHAR");
}
db.setTransactionSuccessful();
db.endTransaction();

我希望这会对某人有所帮助。

The answer from '@mu is too short' is right. Providing an optimized solution for adding multiple columns using the transactions feature in SQL.

String alterTableQuery = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN ";
List<String> newColumns = ..// Your new columns

db.beginTransaction();
for (String column : newColumns){
    db.execSQL(alterTableQuery + column +  " VARCHAR");
}
db.setTransactionSuccessful();
db.endTransaction();

I hope this will help someone.

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