次の構造の証券価格の表があります。
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
主キーとして存在するだけで、それ以外の目的はありません。ただし、明らかなように、1 つのレコードに同じ が多数あり、同じticker
が多数のレコードに存在することもありますがprice_date
、2 つのレコードが同時に同じticker
であってはなりませんprice_date
。
これら 2 つのフィールドに一意の制約を定義するにはどうすればよいですか?また、整合性違反を処理しながらデータベースに INSERT する最良の方法は何ですか?
現在、phpmyadminでMySQLを使用しています。