使 sql 视图可编辑

Posted

技术标签:

【中文标题】使 sql 视图可编辑【英文标题】:Make sql view editable 【发布时间】:2017-10-10 15:26:38 【问题描述】:

我已经制作了这个 sql 视图来组合一些表并且它可以工作,但它不可编辑(我无法插入、删除、编辑)数据直接在其中,但前提是我这样做那么在初始表中,有没有办法直接在视图中执行相同的操作(编辑数据)?

Create view table4 as
Select table1.firstname, table1.lastname, table2.bodyweight, table3.bodyfat
From table1
LEFT JOIN table2 ON table1.table1_id = table2.table2_id;
LEFT JOIN table3 ON table1.table1_id = table3.table3_id;

【问题讨论】:

用您正在使用的数据库标记您的问题。但我并不乐观。 您使用的是 SQL Server 吗? mysql?甲骨文? 我用的是 xampp!所以我认为是sql。 您指的不是一张桌子吗?任何修改,如 UPDATE、INSERT 和 DELETE 语句,都必须仅引用一个基表中的列。 sql 不是特定的 rdbms - 这是您需要说明的。我想你可能正在使用 MariaDB/MySQL? 【参考方案1】:

在 MySQL 中,您无法更新具有“LEFT JOIN”的视图,但是如果您可以将其转换为“JOIN”,则应该没问题。

Create view table4 as
Select table1.firstname, table1.lastname, table2.bodyweight, table3.bodyfat
From table1
JOIN table2 ON table1.table1_id = table2.table2_id;
JOIN table3 ON table1.table1_id = table3.table3_id;

请参阅here 以了解可更新视图中允许的内容。

【讨论】:

非常感谢!这行得通!不幸的是,我选择左连接的原因是因为某些列应该始终为空,而这不能通过 Join 语句完成,所以我可以使用其他东西,比如完全连接吗? 您可能需要更改上面的问题,以包含有关您要达到的目标的更多详细信息。为什么有些列总是为空? 好的,因为这个问题得到了回答,所以我不会更改它,因为它对其他人有用,但我将提出一个新问题,其中包含可更新的视图,在我的确切项目中保持空值,并且让你知道! 所以这是我的完整项目以及我想在一个新问题中实现的确切目标! ***.com/questions/46672311/… 很高兴你也能帮忙!

以上是关于使 sql 视图可编辑的主要内容,如果未能解决你的问题,请参考以下文章

当表格进入“编辑”模式时,如何使表格单元格 UITextField 可编辑?

如何使 ttk.Treeview 的行可编辑?

如何使用 jQuery 制作可编辑的列表项?

iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑

有没有办法使文本区域部分可编辑? (仅使部分文本可编辑)

如何在 iPhone SDK 中使 tableviewcell 文本在触摸时可编辑?