更新:
这是我从下面的答案中学到的东西...
SQLite支持在列上定义默认值。但是,它在查询中不支持任何形式的DEFAULT关键字或函数。因此,实际上,不可能进行MySQL样式的批量插入,即在某些行中显式设置列,而在其他行中使用列默认值。
下面列出了几种创造性的变通办法,但是为了简单起见,我最喜欢Shawn的建议,即每行使用INSERT语句,可能全部包装在BEGIN TRANSactION语句中。只有这样,您才能利用列默认值。
原始问题:
我有一个名为$(()=>{
$('#food').change(function(){
$('#Person').find('option').each(function(){
$(this).toggle();
});
$('#Person').find('option').eq(0).css('display') == 'none' ?
$('#Person').val(2) :
$('#Person').val(1);
})
})
的简单SQLite表,具有这种模式...
我可以使用这种语法在该表中插入行...
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="food" >
<option>Cool Drink</option>
<option>Food</option>
</select>
<select id="Person" >
<option value="1">Pepsi</option>
<option>Coac</option>
<option>Sprite</option>
<option value="2" style="display:none;">Bar b Q</option>
<option style="display:none;">Chicken</option>
<option style="display:none;">Pizza</option>
</select>
但是,
我无法弄清楚如何忽略某些值并使数据库使用该列的默认值。
例如,todo
列的默认值为INSERT INTO 'todo' ('title','complete','notes') VALUES
('Pickup dry cleaning',true,'They close at 7pm'),('Clean apartment',false,'Floors have already been swept'),('Finish homework','Chapters 3 and 4');
。能够将complete
作为查询中的值之一传递,从而向SQLite发出信号,表示我想使用任何列默认值,这会很好,但是却出现0
错误当我尝试这个。
undefined
在这种情况下也不起作用,因为有时您想将单元格的值显式设置为null。您也不能仅仅忽略该值,因为参数是位置性的。