본문 바로가기
MySql

MySQL INNER JOIN을 사용하여 한 번에 TWO TABLES에 대한 SQL INSERT 문

by 베이스 공부 2021. 2. 10.
반응형

hello login_table 두 개의 테이블이 있으며 아래는 그 구조입니다.

user_info
-------
some_id | name | address

login_table
-------
id | username | password

some_id id 는 자동 증가 색인입니다.

이제 SQL 에서 INNER JOIN 과 함께 INSERT 문을 어떻게 사용할 수 있습니까?

현재 동일한 some_id id 로 아래 데이터를 추가하고 싶습니다.

`name` = John
`address` = wall street
`username` = john123
`password` = passw123

아래 코드는 내가 지금까지 시도한 것을 보여줍니다.

insert into login_table lt
INNER JOIN user_info ui ON ui.some_id = lt.id
(ui.name, ui.address, lt.username, lt.password) 
values
('John', 'wall street', 'john123', 'passw123')

그리고 이것은 하나의 가치가 아닙니다. 한 번에 둘 이상의 가치를 추가하고 싶습니다. 어떻게 달성 할 수 있습니까?

도와 주셔서 감사합니다.

 

해결 방법

 

두 개의 INSERT 작업을 원자 적으로 수행해야하는 경우 트랜잭션을 사용합니다.

START TRANSACTION;
INSERT INTO login_table (username, password) VALUES ('john123', 'passw123');
INSERT INTO user_info (name, address) VALUES ('John', 'wall street');
COMMIT;

N.B. 이 작업을 수행하려면 스토리지 엔진이 트랜잭션을 지원해야합니다 (예 : InnoDB ).



 INSERT INTO   tbl_name   (a, b, c) VALUES (1,2,3), (4,5,6), (7,8,9 ); 

각 행의 값 목록은 괄호로 묶어야합니다. 다음 명령문은 목록의 값 수가 열 이름 수와 일치하지 않기 때문에 잘못되었습니다.

 INSERT INTO   tbl_name   (a, b, c) VALUES (1,2,3,4,5,6,7,8,9); 

VALUE 는이 컨텍스트에서 VALUES 의 동의어입니다. 둘 다 값 목록의 수에 대한 어떤 것도 의미하지 않으며 단일 값 목록이 있든 여러 목록이 있든 상관없이 사용할 수 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/10617239

 

 

반응형

댓글