MySQL - 在视图中插入/更新/删除

Mar*_*arm -1 mysql alias views view

我有一个英文和法文网站.

因此,在我的数据库中,我的表中包含名为"name_english"和"name_french"的列以及其他一些数字列.

我想创建2个视图,或类似的东西,它将包含"name"列和我表的所有其他列.

视图"table_english"将列"name_english"作为"name",视图"table_french"将列"name_french"作为"name".

这对于选择的视图工作正常,但我还想在将更新表的视图上进行一些插入/更新/删除.

例:

table:
id | name_english | name_french | int1 | int2 | int3

table_english (a view):
id | name | int1 | int2 | int3 (name here is name_english)

table_french (a view):
id | name | int1 | int2 | int3 (name here is name_french)
Run Code Online (Sandbox Code Playgroud)

然后我想做一些像这样的查询:

INSERT INTO table_english(id, name, int1, int2, int3) VALUES (1, 'name', 12, 14, 2);
UPDATE table_english set name='new name' WHERE id=1;
Run Code Online (Sandbox Code Playgroud)

这些将在表格中插入/更新,并带有相应的字段.

所以最后,"表"的内容将是:

1 | 'new name' | DEFAULT VALUE | 12 | 14 | 2
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

ESG*_*ESG 5

如果视图遵循某些指导原则,则视图可以更新和插入.

更多信息在这里

简短版本是:您无法更新具有任何GROUP BY,DISTINCT或Aggregate函数的视图.有更多限制,但手册是您最好的选择,以获取有关这些限制的最新信息.