SQL中的固定数据类型(ite3)

SQL中的固定数据类型(ite3),sql,python-3.x,database,sqlite,sqldatatypes,Sql,Python 3.x,Database,Sqlite,Sqldatatypes,表: 日期 123 是否有任何解决方案使其不接受指定数据类型以外的任何数据类型? 因此,SQLite列可以存储不同的数据类型。 这是一组有效的插入 INSERT INTO d_t(Date) VALUES (123) 在SQLite中,除非将列定义为整数主键,否则可以存储任何数据类型。 如果计划以yyyyy-MM-DD格式存储日期,或以YYYY-MM-DD hh:MM:ss格式存储时间戳,则可以通过检查约束防止无效值: CREATE TABLE t1( t TEXT, --

表:


日期

123

是否有任何解决方案使其不接受指定数据类型以外的任何数据类型?

因此,SQLite列可以存储不同的数据类型。 这是一组有效的插入

INSERT INTO d_t(Date) VALUES (123)

在SQLite中,除非将列定义为
整数主键
,否则可以存储任何数据类型。

如果计划以
yyyyy-MM-DD
格式存储日期,或以
YYYY-MM-DD hh:MM:ss
格式存储时间戳,则可以通过
检查
约束防止无效值:

CREATE TABLE t1(
    t  TEXT,     -- text affinity by rule 2
    nu NUMERIC,  -- numeric affinity by rule 5
    i  INTEGER,  -- integer affinity by rule 1
    r  REAL,     -- real affinity by rule 4
    no BLOB      -- no affinity by rule 3
)
INSERT INTO t1 VALUES(datetime('2021-05-25 14:30:15'), datetime('2021-05-25 14:30:15'), datetime('2021-05-25 14:30:15'), datetime('2021-05-25 14:30:15'),datetime('2021-05-25 14:30:15'));
INSERT INTO t1 VALUES(500, 500, 500, 500, 500);
INSERT INTO t1(i) VALUES('SQLite uses a more general dynamic type system. In SQLite, the datatype of a value is associated with the value itself, not with its container.'); 
或对于时间戳:

CREATE TABLE d_t (Date text, CHECK (Date LIKE '____-__-__' AND date(Date) IS NOT NULL));
CREATE TABLE d_t (Date text, CHECK (Date LIKE '____-__-__' AND date(Date) IS NOT NULL));
CREATE TABLE d_t (Date text, CHECK (Date LIKE '____-__-__ __:__:__' AND datetime(Date) IS NOT NULL));