Debugging 如何避免在SQLite表中插入错误的数据类型?

Debugging 如何避免在SQLite表中插入错误的数据类型?,debugging,error-handling,sqlite,data-consistency,Debugging,Error Handling,Sqlite,Data Consistency,SQLite具有这种功能,而即使在创建类型为INTEGER或REAL的列时,它也允许您在其中插入一个字符串,甚至是一个没有数字的字符串,如“快狐狸跳过了懒狗” 如何防止此类插入在项目中发生 我的意思是,当我的代码有一个导致这种插入或更新的错误时,我希望程序给出一个错误,这样我就可以调试它,而不是简单地在数据库中无声地插入垃圾。更好、更安全的方法是编写一个函数(isNumeric、isString等)这将验证用户输入…您可以使用检查约束来实现这一点(请参阅)。这看起来像 CREATE TAB

SQLite具有这种功能,而即使在创建类型为
INTEGER
REAL
的列时,它也允许您在其中插入一个字符串,甚至是一个没有数字的字符串,如“快狐狸跳过了懒狗”

如何防止此类插入在项目中发生


我的意思是,当我的代码有一个导致这种插入或更新的错误时,我希望程序给出一个错误,这样我就可以调试它,而不是简单地在数据库中无声地插入垃圾。

更好、更安全的方法是编写一个函数(isNumeric、isString等)这将验证用户输入…

您可以使用
检查
约束来实现这一点(请参阅)。这看起来像

   CREATE TABLE T (
       N   INTEGER CHECK(TYPEOF(N) = 'integer'),
       Str TEXT CHECK(TYPEOF(Str) = 'text'),
       Dt  DATETIME CHECK(JULIANDAY(Dt) IS NOT NULL)
   );