MySQL似乎是在我身上自动转换列类型,但我无法弄清楚原因。
我在CREATE TABLE语句中尝试了几种列定义的变体:
`EarnedPoints` FLOAT NULL
`EarnedPoints` FLOAT(3,1) NULL
`EarnedPoints` DECIMAL(15,1) NULL
但是在创建表格时,列类型始终为DECIMAL(15,0)
。任何人都有关于导致这种情况的原因的理论?服务器版本为5.0.51a。
完整的CREATE TABLE是:
CREATE TABLE IF NOT EXISTS EvaluationAnswers (
`frxEvaluationIndex` INT(10) NOT NULL,
`frxTabIndex` INT(10) NOT NULL,
`frxQuestionIndex` INT(10) NOT NULL,
`frxQuestionRevision` INT(10) NOT NULL,
`Answer` VARCHAR(255) NULL COMMENT 'from fldAnswer',
`EarnedPoints` FLOAT NULL COMMENT 'from fldEarnedPoints',
`NormalizedScore` DOUBLE(15,0) NULL COMMENT 'from fldNormalizedScore',
`PossiblePoints` FLOAT NULL COMMENT 'from fldPossiblePoints',
`Comment` TEXT NULL COMMENT 'from fldComment',
INDEX `_WA_Sys_frxQuestionIndex_77BFCB91` (`frxQuestionIndex`),
INDEX `_WA_Sys_frxQuestionRevision_77BFCB91` (`frxQuestionRevision`),
INDEX `_WA_Sys_frxTabIndex_77BFCB91` (`frxTabIndex`),
PRIMARY KEY `PK_tblEvaluationAnswers` (`frxEvaluationIndex`, `frxTabIndex`, `frxQuestionIndex`, `frxQuestionRevision`)
) ENGINE INNODB