반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL 여러 쿼리가있는 php / mysql (0) | 2021.02.10 |
---|---|
MySQL PHP 대량 삽입 foreach (0) | 2021.02.10 |
MySQL 저장 프로 시저 / 함수에서 여러 행을 반환하는 MySql (0) | 2021.02.10 |
MySQLi는 PHP에서 업데이트 문을 준비했습니다. (0) | 2021.02.10 |
MySQL 날짜 열에 대한 MySQL 조건부 ORDER BY ASC / DESC (0) | 2021.02.10 |
댓글