現在のスキーマが次のアプリケーションにテーブルがあります。
CREATE TABLE quotes
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
quote_request_id INT UNSIGNED NOT NULL,
quote_amount DECIMAL(12, 2) NOT NULL,
accepted TINYINT UNSIGNED NOT NULL DEFAULT 0,
FOREIGN KEY (quote_request_id) REFERENCES quote_requests(id)
) Engine=InnoDB;
特定の見積もりリクエストに対して1つの見積もりのみを受け入れることができるように制約を適用したい-つまり、同じquote_request_id
値を持つ2つ以上の行のaccepted
値が1.1。
これはMySQLで可能ですか?外部キー、主キー以外の列の一意性などの強制は正常に機能し、UNIQUE制約を複数の列に適用することに関する情報は見つかりますが、複数の列を含むより複雑な制約については何も見つかりません。