program story

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

inputbox 2020. 8. 26. 07:51
반응형

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)

SELECT other_field_1, other_field_2, other_field_3 from `abc`

또는 원본 테이블의 모든 필드 를 대상 테이블 로 복사 하려면 더 간단하게 수행 할 수 있습니다.

INSERT INTO def 
SELECT * from `abc`

INSERT INTO def (field_1, field_2, field3) 
VALUES 
('$field_1', (SELECT id_user from user_table where name = 'jhon'), '$field3')

MySQL을 사용하여 자동 증가 기본 키가있는 테이블에 삽입하고 NOW()다음 과 같은 내장 MySQL 함수를 사용하려는 경우 다음 과 같이 할 수 있습니다.

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

반응형