如何解决SQL(ite3) 中的固定数据类型
CREATE TABLE d_t (Date text);
.
INSERT INTO d_t(Date) VALUES (123)
表格:
日期
123
是否有任何解决方案使其不接受指定数据类型以外的任何数据类型?
解决方法
在 SQLite 中,除非您将列定义为 INTEGER PRIMARY KEY
,否则您可以存储任何数据类型。
如果您计划以 YYYY-MM-DD
格式存储日期或以 YYYY-MM-DD hh:mm:ss
格式存储时间戳,您可以使用 CHECK
约束防止无效值:
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));
,
因此允许 SQLite 列存储不同的数据类型。 这是一组有效的 INSERT
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'));
INSERT INTO t1 VALUES(500,500,500);
INSERT INTO t1(i) VALUES('SQLite uses a more general dynamic type system. In SQLite,not with its container.');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。