Могу ли я создать вычисляемые столбцы в SQLite? - PullRequest
15 голосов
/ 14 июля 2009

Какой будет синтаксис (если это возможно), например, для создания таблицы с именем Car_Model, имеющей внешний ключ к таблице Car_Make, и присвоения Car_Make столбца, который представляет собой число Car_Models которые существуют из этого Car_Make.

(Если это кажется тривиальным или домашним заданием, потому что я просто играю с каким-то питоном дома, пытаясь воссоздать проблему, с которой я столкнулся на работе. Мы используем MS-SQL на работе.)

Ответы [ 2 ]

27 голосов
/ 14 июля 2009

SQLite не поддерживает вычисляемые столбцы.

Однако вашу проблему можно решить с помощью относительно простого SQL-запроса, затем вы можете создать представление, чтобы оно выглядело как таблица с дополнительными вычисляемыми столбцами.

SELECT Car_Make.Name, Count(*) AS Count 
FROM Car_Make, Car_Model 
WHERE Car_Make.Id = Car_Model.Make 
GROUP BY Car_Make.Name

Это должно вернуть таблицу, подобную следующей

Name      Count
----      -----
Nissan    5
Toyota    20
Ford      10
0 голосов
/ 19 ноября 2018

Вы можете применить триггер для этого. В этом случае я применяю деление между двумя полями.

CREATE TRIGGER [tUnitPrice] AFTER UPDATE OF [Price], [Qty] ON [tArticles] BEGIN
    UPDATE [tArticles]
    SET    [UnitPrice] = [tArticles].[Price] / [tArticles].[Qty]
    WHERE [rowId] = [NEW].[RowId]; END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...