2012-03-07 3 views
1

한 WordPress 사이트에서 다른 블로그로 주석 테이블을 추가하려고합니다. 사용자가 다릅니다. 사이트 B에서 A로 주석을 가져올 때 중복 키 문제가 발생합니다. comment_id는 이미 사용 중입니다.mysql 가져 오기에서 중복되는 기본 키 확인

어떻게 해결할 수 있으며 간단한 .sql 파일로 테이블을 추가 할 수 있습니까? 사용자 정보를 가져 와서 새 사용자를 생성하고 사이트 B에서 작성한 의견을 확인하고 콘텐츠 및 postID를 가져온 다음 사이트 A로 돌아가서 새로 만든 사용자의 의견을 다시 만들어야합니까?

무슨 두통이야! 감사. 유일한 문제는 중복 키 문제가있는 경우

답변

0

, ENGINE=MyISAM 후 SQL 파일의 끝으로 이동하고 ENGINE=MyISAM AutoIncrement=a nubmer above the last id in the new database

또는 마지막 ID에 대한

데이터베이스 쿼리 A를 다음 하나를 추가 할 새로운 삽입 쿼리에 사용하십시오.

예 1 :

CREATE TABLE IF NOT EXISTS `movies` (
    `id` int(255) NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) NOT NULL, 
    `year` int(4) NOT NULL, 
    `size` varchar(255) NOT NULL, 
    `added` date NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `title` (`title`,`year`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

삽입물 내 덤프에서 :

INSERT INTO `movies` (`title`, `year`, `size`, `added`) VALUES 
('[REC] 2', 0, '716688', '2011-09-23'), 
('5 Days of War', 0, '1435406', '2012-01-09'), 
('[REC]', 0, '1353420800', '2011-11-06'); 

는 참조 난 내 포함에 PRIMARY KEY (id)을 포함 didnt는 방법,하지만 여전히 내 UNIQUE KEY에 대해 확인하고 있는지 확인합니다 제목이 존재합니다. 희망적으로 도움이되는 조금의 데모. 테이블이 이미 새 데이터베이스에있는 경우에는 삽입을 건너 뛰고 기본 키를 포함하지 마십시오. 그러면 다음 사용 가능한 값으로 새 삽입시 자동 설정됩니다.

+0

예를 들어 이전 데이터베이스가 기본 키 5로 끝나고 ENGINE = MyISAM AutoIncrement = 6이라고 말하면 새 데이터베이스의 나머지 항목은 6, 7, 8 등으로 가져 오겠습니까? – AlxVallejo

+0

올바른 경우, 자동 증가를 설정하면 지정한 번호에서 시작됩니다. 자동으로 실행되지 않으면 자동으로 1에서 시작하여 앞으로 이동하고 덤프에서 업데이트하려고하면 오류를 일으키는 원인이됩니다. 덤프 삽입물에 primary_key를 포함하지 마십시오. 매력처럼 작동해야합니다. 내 DB에서 데모를 편집하고 게시 할 것입니다. – rackemup420