2013-10-03 3 views
2

나는 어디에서나 대답을 찾고 있었지만 여전히 해결책을 찾지 못했습니다. 배경 : 필자는 회사의 프로덕션 서버로로드 될 데이터를 테스트하기 위해 내 컴퓨터에서 MySQL Server 5.5를 실행하고 있습니다. MySQL Workbench에서 데이터베이스를 생성하고로드 한 데이터를 적절하게 편집했습니다. 내 데이터는 아무 것도 깨끗한 곳이 아니므로 대부분 필드에 VARCHAR을 사용하고 있습니다. 임의의 많은 것들을 필드에 넣을 수 있기 때문입니다. 나는 여러 가지를 변화 시키려고 노력했으며, 내가 한 일이 고쳐 졌는지 또는 더 이상 문제를 제거하는 데 도움이되었는지를 더 이상 확신하지 못합니다.MySQL 오류 1366 잘못된 문자열 값

내 코드 : DB 생성 :

SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; 

SET NAMES utf8; 

DROP SCHEMA IF EXISTS `mydb` ; 
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ; 
USE `mydb` ; 

-- ----------------------------------------------------- 
-- Table `mydb`.`Customer_Account` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `mydb`.`Customer_Account` ; 

CREATE TABLE IF NOT EXISTS `mydb`.`Customer_Account` (
    `idCustomer_Account` VARCHAR(20) NOT NULL, 
    `Name` VARCHAR(130) NOT NULL, 
    `Billing_Street` VARCHAR(150) NULL, 
    `Billing_City` VARCHAR(30) NULL, 
    `Billing_StateProvince` VARCHAR(25) NULL, 
    `Billing_PostalCode` VARCHAR(15) NULL, 
    `Billing_Country` VARCHAR(20) NULL, 
    `Location_Type` VARCHAR(15) NULL, 
    `Parent_ID` VARCHAR(20) NULL, 
    `Parent_Name` VARCHAR(130) NULL, 
    PRIMARY KEY (`idCustomer_Account`), 
    UNIQUE INDEX `idCustomer_Account_UNIQUE` (`idCustomer_Account` ASC)) 
ENGINE = InnoDB DEFAULT CHARSET=utf8; 

    'CONSTRAINT `Parent_ID` 
    FOREIGN KEY (`idCustomer_Account`) 
    REFERENCES `mydb`.`Customer_Account` (`idCustomer_Account`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION)' 

-- ----------------------------------------------------- 
-- Table `mydb`.`Customer_Address` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `mydb`.`Customer_Address` ; 

CREATE TABLE IF NOT EXISTS `mydb`.`Customer_Address` (
    `idCustomer_Address` VARCHAR(20) NOT NULL, 
    `Name` VARCHAR(50) NOT NULL, 
    `Name_Int` INT, 
    `Address` VARCHAR(80) NULL, 
    `City` VARCHAR(30) NULL, 
    `State` VARCHAR(5) NULL, 
    `ZIP` VARCHAR(15) NULL, 
    `LinkedAccount_Name` VARCHAR(100) NULL, 
    `LinkedAccount_ID` VARCHAR(20) NULL, 
    `CADD` INT, 
    PRIMARY KEY (`idCustomer_Address`), 
    UNIQUE INDEX `idCustomer_Address_UNIQUE` (`idCustomer_Address` ASC)) 
ENGINE = InnoDB DEFAULT CHARSET=utf8; 

-- ----------------------------------------------------- 
-- Table `mydb`.`Contacts` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `mydb`.`Contacts` ; 

CREATE TABLE IF NOT EXISTS `mydb`.`Contacts` (
    `idContacts` VARCHAR(20) NOT NULL, 
    `Name` VARCHAR(50) NOT NULL, 
    `Title` VARCHAR(130) NULL, 
    `Mailing_Street` VARCHAR(110) NULL, 
    `Mailing_City` VARCHAR(30) NULL, 
    `Mailing_State` VARCHAR(25) NULL, 
    `Mailing_PostalCode` VARCHAR(20) NULL, 
    `Phone` VARCHAR(50) NULL, 
    `Account_ID` VARCHAR(20) NULL, 
    `Account_Name` VARCHAR(100) NULL, 
    PRIMARY KEY (`idContacts`), 
    UNIQUE INDEX `idContacts_UNIQUE` (`idContacts` ASC)) 
ENGINE = InnoDB DEFAULT CHARSET=utf8; 


-- ----------------------------------------------------- 
-- Table `mydb`.`Contact_Details` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `mydb`.`Contact_Details` ; 

CREATE TABLE IF NOT EXISTS `mydb`.`Contact_Details` (
    `idContact_Details` VARCHAR(20) NOT NULL, 
    `Salutation` VARCHAR(70) NULL, 
    `First_Name` VARCHAR(30) NULL, 
    `Last_Name` VARCHAR(50) NULL, 
    `Title` VARCHAR(130) NULL, 
    `Mailing_Street` VARCHAR(175) NULL, 
    `Mailing_City` VARCHAR(50) NULL, 
    `Mailing_StateProvince` VARCHAR(30) NULL, 
    `Mailing_PostalCode` VARCHAR(20) NULL, 
    `Mailing_Country` VARCHAR(25) NULL, 
    `Phone` VARCHAR(50) NULL, 
    `Mobile` VARCHAR(35) NULL, 
    `Fax` VARCHAR(45) NULL, 
    `Email` VARCHAR(75) NULL, 
    `Email_OptOut` VARCHAR(1) NULL, 
    `Account_Owner` VARCHAR(20) NULL, 
    `Account_Name` VARCHAR(125) NULL, 
    `Account_ID` VARCHAR(20) NOT NULL, 
    `Active` VARCHAR(2) NOT NULL, 
    PRIMARY KEY (`idContact_Details`), 
    UNIQUE INDEX `idContact_Details_UNIQUE` (`idContact_Details` ASC)) 
ENGINE = InnoDB DEFAULT CHARSET=utf8; 

'INDEX `Account_ID_idx` (`Account_ID` ASC)' 

-- ----------------------------------------------------- 
-- Table `mydb`.`WF1_SR_Accounts` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `mydb`.`WF1_SR_Accounts` ; 

CREATE TABLE IF NOT EXISTS `mydb`.`WF1_SR_Accounts` (
    `idWF1_SR_Accounts` VARCHAR(20) NOT NULL, 
    `Name` VARCHAR(125) NOT NULL, 
    `Billing_Street` VARCHAR(135) NULL, 
    `Billing_City` VARCHAR(50) NULL, 
    `Billing_State` VARCHAR(20) NULL, 
    `Billing_PostalCode` VARCHAR(20) NULL, 
    `Billing_Country` VARCHAR(25) NULL, 
    `Location_Type` VARCHAR(20) NULL, 
    `Parent_ID` VARCHAR(20) NULL, 
    `Parent_Name` VARCHAR(125) NULL, 
    `SR_Account?` VARCHAR(5) NULL, 
    `WF1_Account?` VARCHAR(5) NULL, 
    `WF1_AccountNum` VARCHAR(10) NULL, 
    `WF1_AccountStatus` VARCHAR(25) NULL, 
    `WF1_AccountCreated` VARCHAR(50) NULL, 
    `WF1_BU` VARCHAR(10) NULL, 
    `WF1_Collector` VARCHAR(20) NULL, 
    `WF1_CreditHold` VARCHAR(5) NULL, 
    `WF1_CreditLimit` VARCHAR(10) NULL, 
    `WF1_CreditRating` VARCHAR(15) NULL, 
    `WF1_DVP` VARCHAR(20) NULL, 
    `WF1_PaymentTerms` VARCHAR(20) NULL, 
    `WF1_RSD` VARCHAR(40) NULL, 
    `WF1_TerritoryName` VARCHAR(45) NULL, 
    `WF1_TerritoryNumber` VARCHAR(5) NULL, 
    `Select_` VARCHAR(5) NULL, 
    `New_Select` VARCHAR(5) NULL, 
    `CRMFusion_Use` VARCHAR(10) NULL, 
    `CRMFusion_Change` VARCHAR(10) NULL, 
    PRIMARY KEY (`idWF1_SR_Accounts`), 
    UNIQUE INDEX `idWF1_SR_Accounts_UNIQUE` (`idWF1_SR_Accounts` ASC)) 
ENGINE = InnoDB DEFAULT CHARSET=utf8; 


SET [email protected]_SQL_MODE; 
SET [email protected]_FOREIGN_KEY_CHECKS; 
SET [email protected]_UNIQUE_CHECKS; 

참고 : 나는 또한 SET 이름에 UTF8, 만들면 기본적 CHARSET 및 CHARACTER_SET_SERVER에 대한 라틴 교체, 두 암호화 유형의 내 .txt 인 파일을 만들기 위해 노력했다.

는 또한
SHOW VARIABLES like 'char%'; 

을 실행하고이 내 결과입니다

Variable_name     Value 
character_set_client   latin1 
character_set_connection   latin1 
character_set_database   utf8 
character_set_filesystem   binary 
character_set_results   latin1 
character_set_server   latin1 
character_set_system   utf8 
character_sets_dir   C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ 

참고 : 한 지점에서, 파일 시스템 및 서버 그러나 모든 UTF8했고, 그 중 하나가 작동하지 않았다.

또한 엑셀 및 메모장 ++에서 암호화 유형을 변경했으며 변경하면 도움이되지 않습니다.

+0

[가능한 "잘못된 문자열 값"오류를 수정하는 방법] (http://stackoverflow.com/questions/1168036/how-to-fix-incorrect-string-value-errors) –

답변

0

기본 키를 INT에서 VARCHAR (45) 데이터 유형으로 변경해야합니다.

관련 문제