什么是输出?

时间:2010-05-01 08:33:34

标签: mysql database

嗨,这是我的代码,但是当我在mysql中运行它时会因为数据类型而显示错误但是我的朋友用sql server检查了它并且它没有显示错误并且还插入了值:32769。其中它们是正确的吗?

CREATE TABLE T1 (A INTEGER NOT NULL);
INSERT T1 VALUES (32768.5);

2 个答案:

答案 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'