gpt4 book ai didi

sql - 如何从 View 列获取 SQLite 列类型

转载 作者:行者123 更新时间:2023-12-03 01:18:34 25 4
gpt4 key购买 nike

定义这样的 View 时:

CREATE TABLE x (a VARCHAR(10));
CREATE VIEW v AS SELECT a, a || ' ' AS b FROM x;

我现在想使用以下方法发现 View 列的列类型:

PRAGMA table_info('v');

不幸的是,这会导致

cid |name |type        |notnull |dflt_value |pk |
----|-----|------------|--------|-----------|---|
0 |a |VARCHAR(10) |0 | |0 |
1 |b | |0 | |0 |

任何类型的列表达式都不存在列类型。是否有不同的方法来定义 View 和/或查询表信息以获得列类型,或者这就是 SQLite 的 type affinity 的方式有效吗?

最佳答案

我试过了

CREATE VIEW v2 AS SELECT a, CAST((a || ' ') AS VARCHAR(11)) AS b FROM x;

也没有成功。

文档中没有记录答案吗?你在这里引用 https://www.sqlite.org/datatype3.html

  • 3.2 表达式的亲和性:“...否则,表达式没有亲和性。”
  • 3.3 View 和子查询的列关联性:...“表达式始终没有关联性”。

事实上,您的问题可能是关于表/ View 信息中的内容,而不是关于类型亲和性(也不是类型约束)。在我看来,这是 SQLite3 中的一个纯粹的实现决策,除了 CREATE VIEW 中的预定义属性之外,不设置任何其他内容的 View 信息。

关于sql - 如何从 View 列获取 SQLite 列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54480436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com