数据库设计 - 使用2个字段中的额外唯一键创建和查询表

时间:2013-10-25 08:41:26

标签: mysql sql indexing

我有一张安全价格表,其结构如下:

CREATE TABLE IF NOT EXISTS `security_prices` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `price_date` date NOT NULL,
  `ticker` varchar(36) NOT NULL,
  `price` decimal(10,6) NOT NULL,
  PRIMARY KEY (`id`)
)

id只是主键,不能用于其他目的。但是,显而易见的是,尽管可以有多个具有相同ticker的记录,并且您也可以拥有多个具有相同price_date的记录,但是没有两个记录应该具有相同的tickerprice_date在同一时间。

如何在这两个字段上定义唯一约束,在处理任何完整性违规时插入数据库的最佳方法是什么?

我目前正在使用MySQL和phpmyadmin。

1 个答案:

答案 0 :(得分:1)

查询是::

ALTER TABLE `security_prices`ADD UNIQUE (ticker, price_date);

但在此之前,您需要确保两列的组合没有重复的行。