我正在努力实现这一目标:
INSERT INTO `tbl_result` (`var1`, `var2`, `var3`, `year`, `result`)
VALUES (%f, %f, %d, %d, %f)
ON DUPLICATE KEY UPDATE result=%f;
这些是实时计算器的结果,我想唯一地存储在 tbl_result 数据库表中,并且即使计算结果发生变化也保持更新。以上在我看来是最好的方法。
但是,要使其正常工作var1
,var2
, var3
,year
必须是主键:
CREATE TABLE `tbl_result` (
`ID` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
`var1` DECIMAL(6,2) UNSIGNED NOT NULL ,
`var2` DECIMAL(3,2) UNSIGNED NOT NULL ,
`var3` INT(11) UNSIGNED NOT NULL ,
`year` INT(4) UNSIGNED NOT NULL ,
`result` DECIMAL(8,4) NOT NULL ,
PRIMARY KEY (`var1`, `var2`, `var3`, `year`)
);
但是因为我还需要存储一个唯一的 id 来与多个用户交叉引用结果。我收到以下错误:
错误代码:1075。表定义不正确;只能有一个自动列,并且必须将其定义为键
MySql 版本是 5.5.31-0ubuntu0.12.04.1,是否可以使用 guid 值设置列的默认值?
谢谢,P。
PS这对我来说听起来像是一个合理的场景,是否可以向MySql报告建议?