25

Car_Modelたとえば、 tableへの外部キーを持つというテーブルCar_Makeを作成し、その存在するCar_Make数である列を指定するには、構文はどうなりますか (可能な場合) 。Car_ModelsCar_Make

(これが些細なことや宿題のように思える場合は、職場で抱えていた問題を再現しようとして、自宅で Python をいじっているだけだからです。職場では MS-SQL を使用しています。)

4

3 に答える 3

12

SQLite で計算列を作成できますか?

はい、可能です。この機能は 2020 年 1 月 22 日に追加されました - SQLite 3.31.0

生成された列

生成された列 (「計算列」とも呼ばれます) は、値が同じ行の他の列の関数であるテーブルの列です。生成された列は読み取ることができますが、その値を直接書き込むことはできません。生成された列の値を変更する唯一の方法は、生成された列の計算に使用される他の列の値を変更することです。

CREATE TABLE t1(
   a INTEGER PRIMARY KEY,
   b INT,
   c TEXT,
   d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
   e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
);

重要:

生成された列の式は、同じ行内の定数リテラルと列のみを参照でき、スカラー決定論的関数のみを使用できます。式では、サブクエリ、集計関数、ウィンドウ関数、またはテーブル値関数を使用できません。

生成された列の式は、同じ行内の他の生成された列を参照できますが、生成された列は直接的または間接的にそれ自体に依存することはできません。

元の質問で述べたように、他のテーブルに依存する方法で計算列を作成できないことを意味します。したがって、実行可能なソリューションは、すでに提案されているビューまたはトリガーです。

于 2020-01-26T06:52:46.837 に答える