gpt4 book ai didi

sql - 列数更改时将数据插入SQLite表的动态方法

转载 作者:行者123 更新时间:2023-12-03 14:59:23 24 4
gpt4 key购买 nike

我正在使用SQLite处理脚本,其中可插入要创建的表中的列数会不断变化,以后再进行联接。

我创建用来向其中插入数据的表有97列,从我的供稿中输入的数据范围从80一直到第97列。

我得到的错误是SQLITE_ERROR: table allPositionsTable has 97 columns but 80 values were supplied,这是我试图通过找出一种不会发生的方式来避免的错误。

我是否可以使用任何变通方法或技巧来拥有SQLite函数,以使其始终包含没有数据的列或动态不包含它们的列,从而使错误消失?

最佳答案

我得到的错误是SQLITE_ERROR: table allPositionsTable has 97
columns but 80 values were supplied
,这是我正在尝试的错误
通过找出不会发生这种情况的方法来避免。


发生这种情况是因为您使用的是默认列列表(即未指定要放置值的列)

那就是您将编码INSERT INTO your_table VALUES(.......的等效项
因此,在没有列列表的情况下,您要说的是您将为表中的所有列提供值,因此当不存在一个或多个值时会显示消息。

您要使用INSERT INTO your_table_name (your_comma_separated_list_of_columns_to_be_inserted) VALUES(.......


其中your_table_name和your_comma_separated_list_of_columns_to_be_inserted将被替换为适当的值。


请参见INSERT语法的突出显示部分,该部分可在SQL As Understood By SQLite - INSERT中找到

enter image description here

并且上面链接中的相应部分是:


第一种形式(带有“ VALUES”关键字)创建一个或多个新表单
现有表中的行。

如果表名后面的列名列表是
省略,则插入每一行的值的数量必须为
与表中的列数相同。

在这种情况下,
评估VALUES列表中每一项的最左边的表达式
被插入到每个新行的最左列,依此类推
对于每个后续表达式。

如果指定了列名列表,
那么“值”列表的每个术语中的值数必须匹配
指定的列数。

新的每个命名列
该行填充有评估相应结果的结果
VALUES表达式。

未出现在列列表中的表列
使用默认列值填充(指定为
CREATE TABLE语句),如果没有默认值,则为NULL
指定。

关于sql - 列数更改时将数据插入SQLite表的动态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com