왼쪽 조인 표시는 업데이트 가능합니까?
MariaDB 설명서에 따르면 VIEW는 외부 결합을 업데이트할 수 없습니다.
뷰가 다음 중 하나를 사용하는 경우 뷰를 업데이트에 사용할 수 없습니다. ...외부 결합...
제가 알기로는 '외부조인'에는 '좌파조인'과 '우파조인'이 포함되어 있죠?그러나 mariaDB v10.1.25에서 테스트하면 업데이트 가능합니다.내가 뭘 놓쳤지?
DROP TABLE IF EXISTS t1,t2;
CREATE TABLE t1(id INT, a TEXT);
INSERT INTO t1(id,a) VALUES (1,'a'),(2,'b'),(3,'c');
CREATE TABLE t2(id INT, b TEXT);
INSERT INTO t2(id,b) VALUES (1,'+'),(1,'-'),(2,'*');
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 LEFT JOIN t2 USING(id);
#UPDATE v1 SET a='x' WHERE id=3; # worked
#UPDATE v1 SET a='y' WHERE b IS NULL; # worked
#UPDATE v1 SET b='y' WHERE b IS NULL; # worked! even so, it does not make sense and does not update anything
SELECT * FROM t1;
SELECT * FROM t2;
ChangeLogs의 일부 엔트리.(댓글에 대한 답변이 링크 중 하나에 묻혀 있을 수 있습니다.)
----- 2015-08-03 5.7.8 릴리즈 후보 -- 버그 수정 -----
SET 구와 JOIN 구에서 같은 컬럼이 사용된 뷰의 복수 테이블 UPDATE( /doc/refman/5.7/en/update.http )가 준비된 스테이트먼트로 사용되었을 경우(Bug #76962, Bug #21045724) http://bugs.mysql.com/bug.php?id=76962
----- 2015-03-09 5.7.6 마일스톤16 -- Optimizer Notes -----
파생 테이블(FROM 절의 하위 쿼리) 또는 뷰 참조를 처리하려면 다음과 같이 하십시오. mysql> SET optimizer_switch = 'derived_merge=off';
... http://bugs.mysql.com/bug.php?id=59203
----- 2015-06-04 MariaDB 10.1.5 및 2015-05-07 MariaDB 10.0.18 및 2015-05-01 MariaDB 5.5.43 -----
MDEV-7613 : Http://localhost/kb/en/mariadb-5540-release-notes/ 뷰와 함께 업데이트테이블 좌측 조인으로 MariaDB 5.5.40 서버가 크래시함
---------------------------------------------------------------------------------------------------------------
내추럴 조인과 머지 가능 뷰를 포함한 복수 테이블 UPDATE(http://dev.mysql.com/doc/refman/5.5/en/update.html)에 의해 어설션이 제기되었습니다.(버그 #47150) http://bugs.mysql.com/bug.php?id=47150
주의: 5.5는 MariaDB 10.1보다 이전 버전이며 수정이 포함되어 있어야 합니다. 5.7은 10.1보다 뒤에 있으므로 10.1에는 포함되지 않습니다.
언급URL : https://stackoverflow.com/questions/46036984/view-with-left-join-is-updatable
'programing' 카테고리의 다른 글
Vuex - Normalizr이 예상대로 작동하지 않음 (0) | 2022.09.30 |
---|---|
마리아답서비스:마운트 네임스페이스를 설정하지 못함: 사용 권한이 거부됨/NAMESPACE 산포 단계에서 실패했습니다. (0) | 2022.09.30 |
C의 문자열에서 지정된 인덱스의 문자를 제거하려면 어떻게 해야 합니까? (0) | 2022.09.30 |
PHP에서 빈 개체를 정의하는 방법 (0) | 2022.09.30 |
NumPy 어레이를 단위 벡터로 정규화하는 방법 (0) | 2022.09.30 |