我在我的表中添加了一个新列,所以现在有4个而不是3个,现在在进行参数化插入(循环)时会出现以下错误:
table 'test' has 4 columns but 3 values were supplied
这是否意味着您必须在执行插入时为表的每个列编写查询代码(而不是仅填充要填充的列),并且SQLite不会仅在缺少列时添加默认值来自查询?
我的查询是:
"INSERT OR IGNORE INTO test VALUES (NULL, @col2, @col3)"
这是控制递归lopp中插入内容的代码:
sqlStatement.clearParameters();
var _currentRow:Object = _dataArray.shift();
sqlStatement.parameters["@col2"] = _currentRow.val2;
sqlStatement.parameters["@col3"] = _currentRow.val3;
sqlStatement.execute();
理想情况下,我希望将第4列留空,而不必将其编码到查询中。
谢谢你看看。
答案 0 :(得分:1)
如果您插入的值少于列,则需要明确指定要插入的列。例如
INSERT INTO test(firstcolumn,secondcolumn) VALUES(1,2);
未指定的那些列将获得默认值,如果没有默认值,则为NULL。