シナリオ:
2 つの外部キーを参照するテーブルがあり、これらの外部キーの一意の組み合わせごとに、独自の auto_increment 列があります。これら 3 つの組み合わせを使用して行を一意として識別するのに役立つ複合キーを実装する必要があります (1 つの外部キーと 1 つの auto_increment 列、および一意でない値を持つもう 1 つの列)。
テーブル:
CREATE TABLE `issue_log` (
`sr_no` INT NOT NULL AUTO_INCREMENT ,
`app_id` INT NOT NULL ,
`test_id` INT NOT NULL ,
`issue_name` VARCHAR(255) NOT NULL ,
primary key (app_id, test_id,sr_no)
);
もちろん、私のクエリには何か問題があるはずです。そのため、スローされるエラーは次のとおりです。
エラー 1075: テーブル定義が正しくありません。自動列は 1 つしか存在できず、キーとして定義する必要があります
私が達成しようとしていること:
アプリケーション テーブル (主キーとして app_id を持つ) があり、各アプリケーションには解決すべき問題のセットがあり、各アプリケーションには複数のテストがあります (つまり、test_id 列)。
つまり、テーブル内のデータは次のようになります。
データベース エンジンは InnoDB です。私はこれをできるだけ簡単に達成したいと考えています(つまり、可能であればトリガー/手順を避けます-これは他の質問の同様のケースで提案されました)。