我有一张安全价格表,其结构如下:
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
的记录,但是没有两个记录应该具有相同的ticker
和price_date
在同一时间。
如何在这两个字段上定义唯一约束,在处理任何完整性违规时插入数据库的最佳方法是什么?
我目前正在使用MySQL和phpmyadmin。
答案 0 :(得分:1)
查询是::
ALTER TABLE `security_prices`ADD UNIQUE (ticker, price_date);
但在此之前,您需要确保两列的组合没有重复的行。