在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')
2条答案
按热度按时间o4tp2gmn1#
SQLite使用动态type system。声明的列类型仅指示首选值类型,除非表为strict。
9w11ddsr2#
如果您使用的是高于3.37.0的SQLite版本,请考虑使用STRICT tables。
如果不是,也许可以检查约束?软件验证?一个不同的数据库?