2012-07-11 2 views
0

이전 사용자 DB에서 새 사용자 DB로 마이그레이션해야합니다 .... 운 좋게도 비밀번호와 소금 필드의 값은 모두 같지만 열 이름은 다릅니다. (이전 테이블 : 사용자 passhash-> 비밀, 새 테이블 : newuser 암호 -> salt)변경 열 이름이있는 MySQL 삽입 생성

기존 사용자 - 데이터에서 삽입 덤프를 생성하려면 어떻게합니까? 내가

SELECT id, 
    username, 
LOWER(username) AS username_canonical, 
    email, 
    LOWER(email) AS email_canonical, 
    passhash AS 'password', 
    secret AS salt, 
    1 AS enabled, 
    'a:0:{}' AS roles, 
    0 AS credentials_expired, 
    0 AS expired, 
    0 AS locked, 
    uploaded, 
    downloaded, 
    torrent_pass, 
    0 AS torrent_pass_version 
FROM 
    temp2.users AS fos_user 
WHERE enabled = 'yes' ; 

처럼 뭔가를 할 때마다 내가 제대로하면 phpMyAdmin에 나와있는 값을 볼 수 있습니다 ...하지만 난 결과를 내보낼 때, 나는 오래된 구조에 삽입을 참조하십시오

INSERT INTO `fos_user` (`id`, `username`, `username`, `email`, 
    `email`, `passhash`, `secret`, `enabled`, `a:0:{}`, 
    `credentials_expired`, `expired`, `locked`, `uploaded`, 
    `downloaded`, `torrent_pass`, `torrent_pass_version`) 
VALUES.... 
+0

이에 대한 자세한 구체적으로 : 원하는 스키마를 수출하기 위해 파일 구문에 SELECT를 사용하여 이전 테이블에 : 사용자 passhash-> 비밀, 새로운 테이블 : NEWUSER 암호로> 소금 – Razvan

답변

1

은 왜하지 삽입하고이 같은과 동시에 SELECT ... 이것은 당신이 적어도 일시적, 새 데이터베이스에서 기존 데이터 집합을 가질 수 있다고 가정 물론

INSERT INTO `fos_users` (username, password, salt ...) 
SELECT LOWER(username), passhash, secret, ... 
FROM users; 

+0

영업 이익은 모르는 것 같다 생성 된 쿼리가 테이블 이름을 별칭 이름으로 사용하지만 열 이름의 경우에는 같은 이름이 적용되지 않는 이유는 무엇입니까? 열 이름에도이 방법을 사용할 수 있습니까? –

관련 문제