我已经编写了一个包含INT类型的列的表:
CREATE TEMPORARY TABLE `myTab` (`int` INT,`text` TEXT,`float` FLOAT);
INSERT INTO `myTab` (`int`) VALUES (13.34);
我没有得到警告:
SHOW WARNINGS;
虽然后面只列出了13列:
SELECT * FROM `myTab`;
当浮点值添加到整数列时,是否有可能发出警告?我正在使用MysqL Ver 14.14 distrib 5.5.31,对于debian-linux-gnu(i686)使用readline 6.2
添加:我想避免为每个INT列(How do I check to see if a value is an integer in MySQL?)添加“检查点”.数据丢失时,我倾向于警告.
解决方法
您可以使用DECIMAL(n,0)类型而不是INT.尝试在此列中插入非整数确实会引发警告.
CREATE TEMPORARY TABLE t (id DECIMAL); -- equivalent to the default DECIMAL(10,0),which covers the range of INT INSERT INTO t VALUES (0.9); -- raises warning "1265 - Data truncated for column 'id' at row 1" SELECT * FROM t; -- 0.9 was rounded to 1
原文地址:https://www.jb51.cc/css/214333.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。