错误代码:1406。数据对于列来说太长
CREATE TABLE `TEST`
(
`idTEST` INT NOT NULL ,
`TESTcol` VARCHAR(45) NULL ,
PRIMARY KEY (`idTEST`)
);
Now Insert
一些价值观
INSERT INTO TEST
VALUES
(
1,
'Vikas'
)
select
SELECT * FROM TEST;
插入记录多于length
INSERT INTO TEST
VALUES
(
2,
'Vikas Kumar Gupta Kratika Shukla Kritika Shukla'
)
If we select
the length
SELECT LENGTH('Vikas Kumar Gupta Kratika Shukla Kritika Shukla')
'47'
它显示错误消息
错误代码:1406。数据对于列来说太长
但我的期望是,我想在表中插入至少前 45 个字符
如果问题不清楚,请告诉我。
我知道这个错误的原因。我正在尝试插入超过数据类型长度的值。
我想要 MySQL 中的解决方案,因为它是可能的MS SQL
。所以我希望它也能在MySQL.
MySQL 将截断任何超过指定列宽的插入值。
为了使这个没有错误尝试切换你的SQL mode
不使用STRICT
.
Mysql参考手册
EDIT:
更改模式
这可以通过两种方式完成:
- 打开你的
my.ini
(Windows)或my.cnf
(Unix) MySQL 安装目录中的文件,并查找文本“sql-mode”。
Find:
Code:
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
用。。。来代替:
Code:
# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Or
- 您可以在数据库管理工具(例如 phpMyAdmin)中运行 SQL 查询:
Code:
SET @@global.sql_mode= '';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)