C++ 如何在sqlite3中检查列数是否更改
Iam用c编码并使用sqlite3作为数据库。我想问的是,我们如何检查表中的列数是否发生了更改。情况是这样的,我将使用新的可执行文件运行应用程序,根据新的可执行文件在表中添加新列。因此,当再次创建数据库时,应用程序应检查表架构是否相同,并根据新架构创建表。Iam正在为嵌入式环境开发应用程序(专门针对设备) 当iam更改数据库中表的列数并在设备中运行新的可执行文件时,由于存在旧表,不会创建新表,但当iam删除旧数据库并创建新表时,则会发生更改。因此,如何处理这种情况 平台:Linux,gcc编译器 提前谢谢 请这样引导我:(假设旧DB已经存在) 首先,我们必须检查旧数据库的模式,如果某些表(如添加或删除的一些新列)有任何更改,则根据这些更改创建新数据库。使用版本控制和显式列引用 您可以利用数据库版本控制来帮助解决这类问题C++ 如何在sqlite3中检查列数是否更改,c++,c,linux,sqlite,gcc,C++,C,Linux,Sqlite,Gcc,Iam用c编码并使用sqlite3作为数据库。我想问的是,我们如何检查表中的列数是否发生了更改。情况是这样的,我将使用新的可执行文件运行应用程序,根据新的可执行文件在表中添加新列。因此,当再次创建数据库时,应用程序应检查表架构是否相同,并根据新架构创建表。Iam正在为嵌入式环境开发应用程序(专门针对设备) 当iam更改数据库中表的列数并在设备中运行新的可执行文件时,由于存在旧表,不会创建新表,但当iam删除旧数据库并创建新表时,则会发生更改。因此,如何处理这种情况 平台:Linux,gcc编译器
这样,在使用旧程序时,您的查询应该仍然与新数据库兼容。我不想在开始时插入值。之后会发生这种情况……请告诉我在添加或删除一些新列时如何创建数据库(假设旧数据库也已存在)
UPDATE databaseVersion SET version=2;
INSERT INTO MyTable (id, var1, var2) VALUES (2, '5', '6');
INSERT INTO MyTable (id, var1, var2, var3) VALUES (3, '5', '6', '7');