source

mysql -> tbl에 삽입(다른 테이블에서 선택) 및 일부 기본값

lovecheck 2022. 10. 29. 10:03
반응형

mysql -> tbl에 삽입(다른 테이블에서 선택) 및 일부 기본값

제목에서 알 수 있듯이 다른 테이블에서 값을 선택하고 기본값을 선택하여 하나의 테이블에 삽입하려고 합니다.

INSERT INTO def (catid, title, page, publish) 
(SELECT catid, title from abc),'page','yes')


INSERT INTO def (catid, title, page, publish) 
VALUES
((SELECT catid, title from abc),'page','yes'))

첫 번째 쿼리는 mysql 오류를 나타내고 두 번째 쿼리는 열 카운트가 일치하지 않습니다.

어떻게 해야 되죠?

다음 작업만 하면 됩니다.

INSERT INTO def (catid, title, page, publish) 
SELECT catid, title, 'page','yes' from `abc`

모든 열을 삽입하려면

insert into def select * from abc;

여기서 def의 열 수는 abc와 같아야 합니다.

열의 하위 집합을 삽입하려면

insert into def (col1,col2, col3 ) select scol1,scol2,scol3 from abc; 

하드 코드화된 값을 삽입하려면

insert into def (col1, col2,col3) select 'hardcoded value',scol2, scol3 from abc;
INSERT INTO def (field_1, field_2, field3) 
VALUES 
('$field_1', (SELECT id_user from user_table where name = 'jhon'), '$field3')

원본 테이블의 하위 세트를 복사하려면 다음을 수행할 수 있습니다.

INSERT INTO def (field_1, field_2, field3)

SELECT other_field_1, other_field_2, other_field_3 from `abc`

또는 소스 테이블에서 수신인 테이블로 모든 필드를 복사하려면 다음 작업을 더 쉽게 수행할 수 있습니다.

INSERT INTO def 
SELECT * from `abc`

기본 키가 자동으로 증가하는 테이블에 삽입하고 다음과 같은 내장 MySQL 기능을 사용하려는 경우 MySQL을 사용합니다.NOW()다음과 같은 작업을 수행할 수 있습니다.

INSERT INTO course_payment 
SELECT NULL, order_id, payment_gateway, total_amt, charge_amt, refund_amt, NOW()
FROM orders ORDER BY order_id DESC LIMIT 10;

언급URL : https://stackoverflow.com/questions/5907206/mysql-insert-into-tbl-select-from-another-table-and-some-default-values

반응형