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

标签 debugging error-handling sqlite data-consistency

SQLite 有这个 "feature"而即使当您创建类型为 INTEGERREAL 的列时,它也允许您向其中插入一个字符串,甚至是其中没有数字的字符串,例如 "敏捷的狐狸跳过了懒惰的狗”

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

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

最佳答案

您可以使用 CHECK 约束来实现它(参见 previous answer here )。这看起来像

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

关于debugging - 如何避免在 SQLite 表中插入错误的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29476818/

相关文章:

c++ - sqlite3_open 无法在行打开文件

ruby - Ruby脚本无法打开SQLite3文件,只有在作为守护程序运行时才能打开

c# - 在 Visual Studio 中调试时激活自定义新窗口

debugging - Linux 内核符号地址/proc/kcore 和/proc/kallsyms 之间不匹配

Java GC 在最小分配后运行非常频繁

error-handling - WebSphere wsadmin testConnection错误消息

python - requests.HTTPError 在 requests.get() 404 响应后未被捕获

ios - Xcode 6 忽略断点 - Swift

.net - 从Global.asax显示警报消息框(在Application_Error事件上)

sqlite - flutter sqlite 事务使用错误警告数据库已被锁定