【发布时间】:2021-10-13 23:33:48
【问题描述】:
我有一个视图 (v_licence_data),其构造如下:
SELECT "licences"."user_id" AS "user_id",
"licences"."licence_id" AS "licence_id",
"licences"."licence_created" AS "licence_created",
"licences"."licence_expiry" AS "licence_expiry",
"licences"."licence_key" AS "licence_key",
"licences"."machine_id" AS "machine_id",
"users"."email" AS "email",
"users"."first_name" AS "first_name",
"users"."last_name" AS "last_name",
"users"."date_created" AS "date_created",
"machines"."machine_fingerprint" AS "machine_fingerprint",
"licences"."id" AS "id"
FROM (("licences"
LEFT JOIN "users"
ON(( "licences"."user_id" = "users"."id" )))
LEFT JOIN "machines"
ON(( "licences"."machine_id" = "machines"."id" )))
我正在尝试在视图上做一个UPDATE:
UPDATE v_licence_data
SET email = 'test'
WHERE licence_id = '6787C1-07B5F5-CDC649-28D156-A8706B-V3'
但是我收到以下错误:The target table v_licence_data of the UPDATE is not updatable
我已阅读Updatable and Insertable Views 文档,并且我相信我的视图满足成为可更新视图的所有条件。
我该如何解决这个问题?提前致谢。
【问题讨论】:
-
外部(左)连接是问题,在您发布的链接中提到。
标签: mysql sql view sql-update