作为丹4的答复的补充,如果你想盲目的插入<>NUMERIC,但以<代码>TEXT为代表,但确保文本<>>可兑换<>至数字:
your_numeric_col NUMERIC CHECK(abs(your_numeric_col) <> 0)
典型使用案例来自将所有数据作为文本处理的方案(关于统一和简单化,因为QQ已经这样做)。 这里的一点是,它允许这样的建筑:
INSERT INTO table (..., your_numeric_column, ...) VALUES (..., some_string, ...)
如果你重新使用地主,那是方便的,因为你不需要专门处理这种非零数字领域。 采用<条码>的示例 模块是:
conn_or_cursor.execute(
"INSERT INTO table VALUES (" + ",".join("?" * num_values) + ")",
str_value_tuple) # no need to convert some from str to int/float
在上述例子中,<代码>中的所有数值——价值_tuple在通过至SQlite时,将予以规避和引用。 然而,由于我们不通过<代码>TYPEOF明确核对这一类型,而只是易向查询,因此,它仍将按预期运作(即,Kallite要么将它作为数字储存,要么以其他方式失败)。