我有以下情况:
有一个数据库(主要)包含公共信息,例如“模块”,“菜单”等,每个项目包含一个数据库,其中包含每个表的视图主数据库。例如:
主要
PROJECT1
创建简单的视图:
CREATE VIEW menu_view AS SELECT * FROM main.menu
现在,我必须创建一个'命令'菜单的列,但视图列未更新。
ALTER TABLE `menu` ADD `menu_order` INT NOT NULL AFTER `href`;
每次我必须在主表中创建新列时,是否可以维护视图列而不必手动操作?
OBS:有10个以上的项目......因此随着这个数字的增长,维护将变得更难答案 0 :(得分:1)
您正在使用CREATE VIEW menu_view AS
SELECT * FROM main.menu;
定义视图:
*
唉,当{em>创建视图时解释SELECT *
,而不是视图运行时解释public function saveChange(Request $request) {
if($request->ajax()) {
Affectationabc::create($request->all());
return response()->json([
'testdata' => $request->all()
]);
}
}
。您实际上可以在元数据中看到列已定义。
执行所需操作的唯一方法是重新编译/更改新列的视图。
中对此进行了解释视图定义在创建时“冻结”,不受影响 通过后续更改基础表的定义。对于 例如,如果视图在表上定义为
public function saveChange(Request $request) { if($request->ajax()) { $firstDay = date('l',strtotime(date('Y-01-01'))); $lastDay = date('l',strtotime(date('Y-12-31'))); $request->merge(array('HISTO_AFFECT_DATE_DEB' => $firstDay, 'HISTO_AFFECT_DATE_FIN' => $lastDay)); Affectationabc::create($request->all()); return response()->json([ 'testdata' => $request->all() ]); } }
,则为新列 稍后添加到表中不会成为视图和列的一部分 从表中删除将导致从中选择时出错 图。