복붙노트

[SQL] 또 다른 하나의 데이터베이스에서 MySQL을 삽입]

SQL

또 다른 하나의 데이터베이스에서 MySQL을 삽입]

나는 다른 하나의 데이터베이스에서 데이터를 마이그레이션 할 필요가 모두 같은 로컬 시스템에 있습니다.

그래서, 테이블 및 열은 다른 이름을 있고 난 이전 데이터베이스에서 모든 열을 마이그레이션하지 않아야합니다

나를 위해 작동하지 않습니다 * 선택합니다.

INSERT INTO newDatabase.table1(Column1, Column2);
SELECT oldDatabase.table1(column1, column2) FROM oldDatabase.table1

구문 오류 -하지만 내가 가진 모든는 # 1064입니다

어떻게 내 쿼리의 오류이며, 내가 어떻게이 문제를 해결할 수 있습니까?

미리 감사드립니다

해결법

  1. ==============================

    1.귀하의 질의는 다음과 같이 가야한다 :

    귀하의 질의는 다음과 같이 가야한다 :

    INSERT INTO newDatabase.table1 (Column1, Column2) 
    SELECT column1, column2 FROM oldDatabase.table1;
    

    최신 정보

    이 대답은 내가도 예상보다 더 많은 관심을 받고 있기 때문에, 나는이 대답을 확장해야한다. 우선,이 대답 자체에서 분명하지 않을 수도 있지만 열은 같은 이름을 가질 필요가 없습니다. 그래서, (열이 각각의 테이블에 존재한다고 가정)도 작동합니다 다음 :

    INSERT INTO newDatabase.table1 (Column1, Column2) 
    SELECT SomeOtherColumn, MoreColumns FROM oldDatabase.table1;
    

    또한, 그들은 심지어 테이블의 실제 열 필요는 없습니다. 나는 꽤 자주 사용하는 데이터를 변환하기위한 예제 중 하나 :

    INSERT INTO newDatabase.users (name, city, email, username, added_by) 
    SELECT CONCAT(first_name, ' ', last_name), 'Asgard', CONCAT(first_name,'@gmail.com'), CONCAT(first_name,last_name), 'Damir' FROM oldDatabase.old_users;
    

    그래서,로 지금 더 분명 수 있습니다, 규칙입니다만큼 SELECT 질의가 INSERT 쿼리 요구는,이 값으로 대체 될 수 있음을 열 같은 수를 반환한다.

  2. ==============================

    2.당신은 "테이블과 열이 다른 이름을 가지고",하지만 당신은 여전히 ​​같은 이름을 사용했다. 이 시도:

    당신은 "테이블과 열이 다른 이름을 가지고",하지만 당신은 여전히 ​​같은 이름을 사용했다. 이 시도:

    INSERT INTO newDatabase.newtable1 (newColumn1, newColumn2) 
    SELECT oldcolumn1, oldcolumn2 FROM oldDatabase.oldtable1;
    
  3. ==============================

    3.

    INSERT INTO db1.table SELECT * FROM db2.table;
    

    서로 다른 DB의 같은 테이블에 데이터를 복사합니다.

  4. ==============================

    4.

    CREATE TABLE db2.table LIKE db1.table;
    INSERT INTO db2.table 
    SELECT column_name FROM db1.table
    
  5. from https://stackoverflow.com/questions/22912167/mysql-insert-into-from-one-database-in-another by cc-by-sa and MIT license