mySQL - 创建4字段主键/索引以停止重复?

时间:2015-02-26 14:24:45

标签: mysql

我有一个名为locations的表,除其他字段外,还有以下字段:

IMEI: VARCHAR(15) foreign key references devices.IMEI
latitude: DECIMAL(10,6)
longitude: DECIMAL(10,6)
datetime: DATETIME

有时,我的服务器存储重复项,即上面的所有字段都相同,这意味着a given device (IMEI)位于latitude,longitude datetime。我想阻止所有这四个字段等于表中任何其他行的插入。

我不确定是否应该使用索引或主键。如果有帮助,这些字段将一直用于选择/过滤器。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

通过更改现有表格来添加复合主键

ALTER TABLE locations ADD PRIMARY KEY(IMEI, latitude, longitude, datetime);

或者您可以在创建表格时定义键

DECLARE @locations TABLE (
...,
PRIMARY KEY(IMEI, latitude, longitude, datetime)
);