我使用mysql server 5.6命令行发现了这种奇怪的行为。
如果我这样做:
source C:\Users\dyesdyes\Downloads\test.sql
,此文件中的代码为:
insert into `tWord`(`word`,`frequency`) values
('à',16994.68);
创建tWord表的SQL是:
CREATE TABLE IF NOT EXISTS `tWord` (
`idWord` INT(11) NOT NULL AUTO_INCREMENT,
`word` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_bin' NOT NULL,
`frequency` DOUBLE NULL DEFAULT NULL,
PRIMARY KEY (`idWord`),
UNIQUE INDEX `idWord_UNIQUE` (`idWord` ASC),
INDEX `word` (`word` ASC),
INDEX `idWord` (`idWord` ASC))
ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARACTER SET = utf8;
错误是:
ERROR 1366(HY000):字符串值不正确:“word”列''\ xE0' 在第1行
如果我在工作台客户端中执行相同的insert语句,它可以正常工作。它只使用命令行...
给出错误任何提示?
答案 0 :(得分:1)
.sql文件应该是UTF8编码的。文本编辑器应该有一个设置来保存它。