2011-01-15 3 views
1

를 연결 나는 오류가버그 내가 럼 쿼리하려고 할 때이 테이블

#1267 - Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='

내 테이블 구조처럼

CREATE TABLE `empregistration` (
    `id` int(100) NOT NULL auto_increment, 
    `cname` text NOT NULL, 
    `cpersonname` text NOT NULL, 
    `roaddress` text NOT NULL, 
    `txtcity` text NOT NULL, 
    `txtstate` text NOT NULL, 
    `txtcountry` text NOT NULL, 
    `faxno` varchar(255) NOT NULL, 
    `contactno` varchar(255) NOT NULL, 
    `url` varchar(255) NOT NULL, 
    `empCat` varchar(255) NOT NULL, 
    `empno` varchar(255) NOT NULL, 
    `ctype` varchar(255) NOT NULL, 
    `establishyear` varchar(255) NOT NULL, 
    `txtjobcategory` text NOT NULL, 
    `cemailid` varchar(255) NOT NULL, 
    `calteremailid` varchar(255) NOT NULL, 
    `aboutcompany` text NOT NULL, 
    `password` varchar(255) NOT NULL, 
    `conpassword` varchar(255) NOT NULL, 
    `empLogo` varchar(255) NOT NULL, 
    `paymenttype` varchar(255) NOT NULL, 
    `regDate` int(11) default NULL, 
    `countViewProf` varchar(200) default '0', 
    `cntDownProf` varchar(200) default '0', 
    `cntJobPost` varchar(200) default '0', 
    `cntupdatejob` varchar(200) NOT NULL default '0', 
    `limitjobpost` varchar(200) NOT NULL default '0', 
    `limitofupdatejob` varchar(200) NOT NULL default '0', 
    `limitofviewcv` varchar(200) NOT NULL default '0', 
    `limitofdowncv` varchar(200) NOT NULL default '0', 
    `paymentforpostjob` varchar(200) NOT NULL default '0', 
    `paymentforsearchcv` varchar(200) NOT NULL default '0', 
    `takenPlan` varchar(255) default '0', 
    `planDate` date default NULL, 
    `takenplanforpostjob` varchar(200) NOT NULL default '0', 
    `postjobplandate` varchar(200) NOT NULL default '0', 
    `cntJobPost1` varchar(200) default '0', 
    `cntupdatejob1` varchar(200) default '0', 
    `status` varchar(255) NOT NULL default 'Active', 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=214 ; 

다른 테이블

찾을
CREATE TABLE `blockedcompanies` (
    `blockedId` int(11) NOT NULL auto_increment, 
    `empId` varchar(50) collate latin1_general_ci NOT NULL, 
    `regId` int(11) NOT NULL, 
    `jobSeekId` varchar(50) collate latin1_general_ci NOT NULL, 
    `blockDate` date NOT NULL, 
    PRIMARY KEY (`blockedId`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ; 

답변

0

당신은 당신의 쿼리를 보여주지 않지만, 당신은 어떻게 든 거기에 '='가있는 것으로 기대하고 있습니다. 이제 기본 데이터 정렬이 스웨덴 식으로 보이고 'blockedcompanies'테이블에 latin1_general에 대한 데이터 정렬이 있습니다.

오류는 "암시 적"이므로 쿼리에서 데이터 정렬을 사용하지 않습니다. 이제 서로 다른 데이터 정렬을 비교해야합니다. 당신은 COLLATE

검사를 사용하여이 있음을 변경할 수있어 : 당신이 테이블 empregistration을 만들 때 http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html

+0

감사합니다.이 문제에 대한 해결책이 있습니다. – Rajanikant

0

,

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=214 ; 

과에

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=214 ; 

에서 마지막 줄을 변경하려면 쿼리가 작동하기 시작해야합니다.