-1

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

所以在我的数据库中,我的表有例如名为“name_english”和“name_french”的列以及其他一些数字列。

我想创建 2 个视图或类似的东西,它们将包含“名称”列和我的表的所有其他列。

视图“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)

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

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;

这些将被插入/更新到具有相应字段的表中。

所以最后,“table”的内容将是:

1 | 'new name' | DEFAULT VALUE | 12 | 14 | 2

我怎样才能做到这一点?

4

2 回答 2

5

如果遵循某些准则,视图可以是可更新和可插入的。

更多信息在这里

简短的版本是:您不能更新具有任何类型的 GROUP BY、DISTINCT 或 Aggregate 函数的视图。还有更多限制,但最好使用手册来获取有关这些限制的最新信息。

于 2012-06-15T20:45:56.883 回答
1

您可以插入/更新视图。视图的目的是显示一个或多个表的全部或部分状态。您将必须更新表并进行两次更新和两次插入......一个更新/插入name_english列,一个用于name_french列。

于 2012-06-15T20:45:58.040 回答