sqlite 为什么该数据类型在IPython-SQL中不起作用?

llycmphe  于 2022-11-14  发布在  SQLite
关注(0)|答案(2)|浏览(227)

在jupyter中创建数据库表时,我们对表的列中的数据类型指定了限制,但由于某些原因,我们仍然可以添加其他数据类型。例如,st_gr列应该只包含数字,但没有什么可以阻止我们添加一行(下面的代码)为什么?怎么修?

%%sql sqlite://
CREATE TABLE students(
    st_id INTEGER PRIMARY KEY AUTOINCREMENT,
    fname VARCHAR(15) NOT NULL,
    lname VARCHAR(15) NOT NULL,
    st_gr NUMERIC
)

%%sql sqlite://
    INSERT INTO students (fname, lname, st_gr) VALUES('Barack', 'Obama', 'text not num')
o4tp2gmn

o4tp2gmn1#

SQLite使用动态type system。声明的列类型仅指示首选值类型,除非表为strict

9w11ddsr

9w11ddsr2#

如果您使用的是高于3.37.0的SQLite版本,请考虑使用STRICT tables
如果不是,也许可以检查约束?软件验证?一个不同的数据库?

相关问题