1

多くの種類のオブジェクトの 1 つについて作成されたコメントを表す MySql (InnoDb) テーブルがあります。Concrete Table Inheritanceを使用しているため、以下に示すように、オブジェクトのタイプ (ストア、カテゴリ、アイテム) ごとに異なる外部キーがあります。レコードごとに、外部キーを 1 つだけ設定し、残りの 2 つを null にする必要があります。MySql でこの制約を指定するにはどうすればよいですか?

CREATE TABLE `tbl_comment` (
  `comment_id` bigint(20) NOT NULL AUTO_INCREMENT,  /* primary key */
  `_user_id` bigint(20) NOT NULL,   /* foreign key to user table - always set (NOT NULL) */

  `store_id` int(11) DEFAULT NULL,  /* foreign key to store table */
  `category_id` bigint(20) DEFAULT NULL,  /* foreign key to category table */
  `item_id` bigint(20) DEFAULT NULL,  /* foreign key to item table */
...
4

1 に答える 1

0

次のトリガーを追加してみてください

CREATE TRIGGER on_insert AFTER INSERT ON `tbl_comment`
FOR EACH ROW
BEGIN
   SET NEW.category = NULL, NEW.item = NULL;
END;
于 2012-11-17T08:28:04.777 に答える