如何通过更改SQLite3中的现有SQL表通过单个SQL语句添加更多列?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过更改SQLite3中的现有SQL表通过单个SQL语句添加更多列?相关的知识,希望对你有一定的参考价值。

#include <stdio.h> /* needed for vsnprintf */
#include <stdlib.h> /* needed for malloc-free */
#include <string.h>
#include <sqlite3.h>

 char *table[10]    = { "John", "peter", "Nolan" };
 int   i ;
 for(i=0; i<3; i++)
 {
           char *sql1 = "ALTER TABLE names ADD column '%s'",table[i];    
           rc = sqlite3_exec(db, sql1, callback, 0, &zErrMsg);
           if (rc != SQLITE_OK )
           {
                printf("Error: %s:Unable to ALTER the table\n", zErrMsg);
           }
 }
  • 在上面的代码中添加'3'列(例如John,Peter,Nolan),我将SQL语句重新运行了'3'次。
  • 是否有可能通过单个SQL语句(或)提供任何其他API来添加'3'以上的列?

注意:我不想做以下事情

       - Using a loop statement to add the columns.

       - Executing many SQL statements to add the columns.

       - Backup of the existing database and renaming it after adding the columns.
答案

不,您无法在1个单个sql语句中执行此操作,您可以在多行语句的一行中执行此操作。

以上是关于如何通过更改SQLite3中的现有SQL表通过单个SQL语句添加更多列?的主要内容,如果未能解决你的问题,请参考以下文章

根据表中另一个现有列的内容更改 SQL Server 中的现有列

如何将文件表与SQL Server中的现有表链接

使用 `executemany` 更新现有 SQLite3 数据库中的条目(使用 Python sqlite3)

如何根据与现有记录匹配的单个字段值覆盖表中的单个 MySQL 记录?

SQL如何更改表中的列名称?

如何通过 PL/SQL 过程和表名作为变量打印动态 SQL 中的所有表行?