亲爱的Stack Overflow社区,
我在开始第一次尝试使用Database-Design时遇到了一些问题。
我尝试制作一些表格,并尝试检查基本功能;用Python3和SQLite3编写。
我的问题很简单,我有几句话:
cur.execute('CREATE TABLE IF NOT EXISTS test(a INTEGER, argument DATE)')
现在我可以写:
cur.execute('insert into test (a, argument) values (?,?)', "bla", "blabla")
没有收到错误消息;在CREATE TABLE
语句中定义允许的数据类型时,SQL是否应该自动禁止此命令?
完整代码在此处:http://codepad.org/kf4gZB7m
答案 0 :(得分:4)
这是一个功能,而不是一个bug。 SQLite使用动态类型。见https://sqlite.org/faq.html#q3
答案 1 :(得分:0)
此功能为类型相似性:
使用刚性类型的SQL数据库引擎通常会尝试 自动将值转换为适当的数据类型。的 这里的重要思想是建议使用该类型,而不是必需。