| Bug #107072 | Incorrect "Can not delete from join view" when create view based on other view | ||
|---|---|---|---|
| Submitted: | 20 Apr 2022 16:30 | Modified: | 21 Apr 2022 6:42 |
| Reporter: | Александр Ммммммм | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: DML | Severity: | S3 (Non-critical) |
| Version: | 8.0.28 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[20 Apr 2022 16:36]
Александр Ммммммм
Documentation says https://dev.mysql.com/doc/refman/8.0/en/view-updatability.html "The flag is set to YES (true) if UPDATE and DELETE (and similar operations) are legal for the view." SELECT IS_UPDATABLE FROM information_schema.VIEWS WHERE TABLE_NAME = 'documents_v_2' ; +------------+---+ |IS_UPDATABLE|YES| +------------+---+
[21 Apr 2022 6:42]
MySQL Verification Team
Hello Александр Ммммммм, Thank you for the report and feedback. regards, Umesh

Description: When create view based on other view (all views without JOIN's, only EXISTS) I catch error "Can not delete from join view" How to repeat: CREATE TABLE documents ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT , sum INT NOT NULL DEFAULT 0 ) ; CREATE TABLE document_positions ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT , document_id INT UNSIGNED NOT NULL , price INT , quantity INT , CONSTRAINT document_positions_documnent FOREIGN KEY (document_id) REFERENCES documents (id) ) ; CREATE OR REPLACE VIEW documents_v_1 AS SELECT * FROM documents WHERE EXISTS ( SELECT 1 FROM document_positions WHERE documents.id = document_positions.document_id ) ; CREATE OR REPLACE VIEW documents_v_2 AS SELECT * FROM documents_v_1 WHERE EXISTS ( SELECT 1 FROM document_positions WHERE documents_v_1.id = document_positions.document_id ) ; DELETE FROM documents_v_2 ; [HY000][1395] Can not delete from join view 'test.documents_v_2'