嗨,这是我的代码,但是当我在mysql中运行它时会因为数据类型而显示错误但是我的朋友用sql server检查了它并且它没有显示错误并且还插入了值:32769。其中它们是正确的吗?
CREATE TABLE T1 (A INTEGER NOT NULL);
INSERT T1 VALUES (32768.5);
答案 0 :(得分:1)
MySQL(正好在我看来)因为你已经为期望INTEGER的列提供了FLOAT值而感到沮丧。
MS-SQL正在幕后进行隐式转换,但我个人认为这是糟糕的事情 - 而且MySQL的响应(错误)是正确的......
答案 1 :(得分:0)
你的朋友是对的。 MySQL在插入数字时将数字转换为整数。没有错误。
CREATE TABLE T1 (A INTEGER NOT NULL);
INSERT T1 VALUES (32768.5);
SELECT * FROM T1;
结果:
A
32769
版本信息:
SELECT @@VERSION;
'5.1.41-community'