bei*_*ndo 2 python sqlite sqldatatypes
亲爱的 Stack Overflow 社区,
我在开始第一次尝试数据库设计时遇到了一个小问题。
我尝试制作某种表格并尝试查看基本功能;用 Python3 和 SQLite3 编写。
我的问题很简单,我有几行:
cur.execute('CREATE TABLE IF NOT EXISTS test(a INTEGER, argument DATE)')
Run Code Online (Sandbox Code Playgroud)
现在我可以写:
cur.execute('insert into test (a, argument) values (?,?)', "bla", "blabla")
Run Code Online (Sandbox Code Playgroud)
没有收到错误信息;当您在CREATE TABLE语句中定义允许的数据类型时,该命令不应该被 SQL 自动禁止吗?
完整代码在这里:http : //codepad.org/kf4gZB7m
这是一个功能,而不是一个错误。SQLite 使用动态类型。见https://sqlite.org/faq.html#q3
这个特性就是类型亲和力:
使用严格类型的 SQL 数据库引擎通常会尝试自动将值转换为适当的数据类型。这里重要的想法是该类型是推荐的,而不是必需的。
文档: https: //sqlite.org/datatype3.html#affinity