MySQL执行INSERT语句出现'>提示符提示字符串缺失如何解决
问题根因
'>提示符的含义就是MySQL判定当前输入的语句存在未闭合的单引号,正在等待你补全剩余字符串内容。你的语句问题出在第4个字段的文本里:Spider's中的单引号被MySQL识别成了当前字符串的结束标记,后续所有内容都被判定为未结束的字符串内容,直到语句结束都没有找到匹配的闭合单引号,因此一直卡在等待输入的状态。
先退出当前卡住的状态
如果现在还停在'>提示符下,不要反复敲回车,依次输入以下内容后回车,就能回到正常的mysql>命令行提示符:
' \c
第一行输入单引号是为了闭合当前悬而未决的字符串,第二行的\c是MySQL命令行的取消当前语句指令,直接输入\c会因为还在字符串上下文里不生效。
语句修复方法
在单引号包裹的字符串中要插入单引号本身,标准SQL的写法是用两个连续单引号做转义,把Spider's修改为Spider''s即可,修正后的完整可执行语句如下:
INSERT INTO events VALUES ('13', '2021.03.13', 'vet', 'Dehidration. Spider''s body loses more fluids than it does take in. If spider is not threated, it can get worse and become a serious problem.', '10', '5');
如果文本里单引号数量多,也可以在MySQL默认模式(未开启ANSI_QUOTES)下用双引号包裹包含单引号的字符串,不过双写单引号的写法兼容性最好,不受SQL模式影响,优先推荐使用。
同类问题快速排查技巧
- 写插入文本类字段的语句时,重点检查英文所有格、英文缩写里的单引号(比如
it's、xxx's、don't),这类是触发未闭合引号问题的最高频场景。 - 如果长文本里找不到问题引号,可以把长文本拆成多段逐段测试,很快就能定位到出错的位置。
内容的提问来源于stack exchange,提问作者QWERTY
相关产品推荐
相关产品推荐

