Mysql
我無法在 mysql 中創建表
create table Statistics_tbl with ( SELECT Todo_tbl.person, SUM(Todo_tbl.duration) FROM Todo_tbl JOIN Statistics_tbl on Todo_tbl.person = Statistics_tbl.person GROUP BY person; );
問題是上面的程式碼不允許我創建一個將連接到另一個表 Todo_tbl 的表 Statistics_tbl。
報告的問題是:
- “’)’ 在這個位置無效。期待 EOF、ALTER、ANALYZE、BEGIN”
- “’(’ 在這個位置無效。需要一個標識符。
見小提琴
create table Statistics_tbl (person VARCHAR(45), sum_duration INT) SELECT Todo_tbl.person, SUM(Todo_tbl.duration) sum_duration FROM Todo_tbl GROUP BY person;
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=ff57cb2a8755e2c2ee8136e75c47bd38
在我重新閱讀了how-can-i-join-two-tables-in-mysql-so-that-whenever-i-add-data-to-table-1-tabl 中的答案和評論後,我認為您正在尋找用於物化查詢表 (MQT)。AFAIK 這些在 MySQL 中不存在,但您可以通過觸發器創建自己的增量評估系統 (IES),例如:https ://fromdual.com/mysql-materialized-views
我在Fiddle添加了一個插入觸發器的小範例。您必須添加相應的更新和刪除。不用說,您還需要在表中添加鍵而不是空約束,以便可以安全地辨識行。免責聲明,我不太了解 MySQL,所以我不知道您可能需要考慮哪些並發問題(例如失去更新)
上一個答案中建議的視圖有什麼問題?