MySQL错误1406(22001):数据对列太长

MySQL错误1406(22001):数据对列太长,mysql,sql,insert,sql-insert,Mysql,Sql,Insert,Sql Insert,考虑表标记: mysql> SELECT * FROM marks; +--------+------------+-----------------------+ | name | percentage | email | +--------+------------+-----------------------+ | Bipin | 84% | bipin_p@gmail.com | | Deepak | 78%

考虑表标记:

mysql> SELECT * FROM marks;
+--------+------------+-----------------------+
| name   | percentage | email                 |
+--------+------------+-----------------------+
| Bipin  | 84%        | bipin_p@gmail.com     |
| Deepak | 78%        | cool_deepak@gmail.com |
| Rohith | 82%        | rohith_s@gmail.com    |
| Sujit  | 94%        | sujit_jos@gmail.com   |
+--------+------------+-----------------------+
当我进行以下查询以向表中插入值时,导致了一个错误:

mysql> INSERT INTO marks VALUES('&name','&percentage','&email');
ERROR 1406 (22001): Data too long for column 'percentage' at row 1 
这是一个基于另一种在SQL中使用('&')插入值的方法的信息的实验

你能具体说明出了什么问题吗? 根据博客的说法,只需按ENTER键即可在查询后插入值

所需输出:

Enter value for name: John
Enter value for percentage: 76%
Enter value for email: john_doe@gmail.com

在MySQL中,会话变量的前缀是
@
,它们不会在引号中展开。因此,它应该是:

mysql> SET @name = 'John', @percentage = '76%', @email = 'john_doe@gmail.com';
mysql> INSERT INTO marks VALUES(@name,@percentage,@email);

Oracle中没有自动提示变量,您必须手动设置。

MySQL不支持Oracle的这一功能。@GMB,我对Oracle一无所知。谢谢你分享这些信息。所以我只想知道MySQL中存在这样一个功能。@Biping:据我所知,MySQL中没有命令提示符。该代码试图将文本字符串
&percentage
放入表中。不,MySQL没有。