有时,出于各种原因,我们需要创建数据库表的(SQL) 视图。在有关 Laravel 迁移的文档中,它没有指定有关 SQL 视图的任何内容。但是在运行迁移时会很好,能够通过迁移创建视图,因此问题是:
我们如何在 laravel 中使用迁移在数据库中创建视图?
假设以下基本示例取自 MySQL 视图文档
mysql> CREATE TABLE t (qty INT, price INT);
mysql> INSERT INTO t VALUES(3, 50);
mysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
mysql> SELECT * FROM v;
+------+-------+-------+
| qty | price | value |
+------+-------+-------+
| 3 | 50 | 150 |
+------+-------+-------+
有问题的观点:
CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
首选 laravel 版本 >= 5.6
DBMS = MySQL >= 5.5
一种方法是将外观
DB
与statement
从迁移创建视图的方法一起使用。在创建将涉及的表之后,使用您想要的名称创建迁移,否则在运行迁移时会抛出错误。
并在迁移
query
中直接执行视图的创建从控制器或其他想要获取视图结果的部分,您还可以使用外观
DB
我更喜欢这种方式,因为当重置完成时,它不会出错。