SQL/MariaDB INSERT 결과를 얻는 방법
SQL INSERT를 실행한 후 새로운 ROW를 얻을 수 없습니다.
last_inserted_id()는 INT ID가 있는 경우에만 기능하며, 잘못 알고 있지 않은 경우에는 자동으로 증분해야 합니다.지금 시도한 것은 임시 테이블을 만들고 두 테이블에 삽입하는 것입니다.
동작합니다만, 원래의 ROW와 달리 새로운 테이블로 인해 값이 0이 되어 있기 때문에 올바른 ID를 찾을 수 없습니다.PHP 코드에 포함시키고 싶기 때문에 다른 DB 테이블에서도 동작합니다.아, 그리고 나는 MariaDB 10.3+를 사용합니다.
고려사항은 "last_insert_id가 있는 경우 SELECT INTO..." (id = last_id 등) 사이에 문을 삽입하는 것입니다.그 외의 경우는, 이하의 스니펫을 참조해 주세요.
CREATE OR REPLACE TEMPORARY TABLE tmp_school AS SELECT * FROM school LIMIT 0;
INSERT INTO school ( school_name ) VALUES ( 'blubb' );
INSERT INTO tmp_school ( school_name ) VALUES ( 'blubb' );
SELECT * FROM tmp_school;
다음과 같이 시도해 보십시오.
INSERT INTO tmp_school (school_name) VALUES ('blubb') RETURNING school_name ;
일반(임시적이지 않음) 테이블에 여러 값을 동시에 삽입해도 동일하게 동작합니다.
INSERT INTO school (school_name) VALUES ('blubb'), ('abc'), ('bcd') RETURNING school_name ;
MariaDB 서버 버전이 이 문을 지원하는 경우 도움이 되기를 바랍니다.
RETURNING 구문은 SELECT와 완전히 같기 때문에 RETURNING *도 사용합니다.
INSERT INTO school (school_name) VALUES ('blubb'), ('abc'), ('bcd')
RETURNING * ;
이 쿼리는 3줄을 학교 테이블에 삽입하고 동일한 3줄을 표시합니다.
언급URL : https://stackoverflow.com/questions/71344502/how-to-get-sql-mariadb-insert-result
'programing' 카테고리의 다른 글
인식할 수 없는 문 유형입니다.(위치 0의 "WITD" 근처) (0) | 2022.11.06 |
---|---|
PermGen과 Metaspace의 차이점은 무엇입니까? (0) | 2022.11.06 |
Larabel 5에 외부 CSS 및 JS 파일을 포함하는 방법 (0) | 2022.11.06 |
Java에서 포인터를 사용하려면 어떻게 해야 하나요? (0) | 2022.10.27 |
PHP 배열이 연관성이 있는지 순차적인지 확인하는 방법 (0) | 2022.10.27 |