Dan04 yanıtına bir ek olarak, bir ile NUMERIC
temsil edilen sıfırdan başka bir körü körüne eklemek istiyorsanız, ancak metnin bir rakama dönüştürülebilirTEXT
olduğundan emin olun :
your_numeric_col NUMERIC CHECK(abs(your_numeric_col) <> 0)
Tipik kullanım durumu, tüm verileri metin olarak değerlendiren bir programdan gelen bir sorgudadır (SQLite zaten bunu yaptığı için tekdüzelik ve basitlik için). Bunun güzel yanı, bunun gibi yapılara izin vermesidir:
INSERT INTO table (..., your_numeric_column, ...) VALUES (..., some_string, ...)
Bu, yer tutucular kullanmanız durumunda kullanışlıdır, çünkü bu tür sıfır olmayan sayısal alanları özel olarak işlemeniz gerekmez. Python'un sqlite3
modülünü kullanan bir örnek ,
conn_or_cursor.execute(
"INSERT INTO table VALUES (" + ",".join("?" * num_values) + ")",
str_value_tuple) # no need to convert some from str to int/float
Yukarıdaki örnekte, str_value_tuple
SQlite'a iletildiğinde içindeki tüm değerler atlanacak ve dizeler olarak alıntılanacaktır. Ancak, türü açıkça kontrol etmediğimizden, TYPEOF
yalnızca türe dönüştürülebilirliği kontrol ettiğimizden , yine de istendiği gibi çalışacaktır (yani, SQLite bunu sayısal olarak saklayacak veya aksi takdirde başarısız olacaktır).