InnoDB MySQLデータベースを使用し、2番目のキーで自動インクリメントを許可するグループ化された主キーに相当するものはありますか?
私が実装しようとしているのは、次のような親オブジェクトIDに基づいて画像のURLを格納するテーブルです。
CREATE TABLE images (
parent_id INT(11) NOT NULL,
image_id INT(11) AUTO_INCREMENT, //will this work with a grouped primary key?
source_url VARCHAR(255) NOT NULL,
caption VARCHAR(255) NOT NULL,
) ENGINE = InnoDB;
したがって、MyISAMの場合、次のようなことができます。
PRIMARY KEY(parent_id, image_id)
[編集]トリガーの使用は次のようになります:(申し訳ありませんが、私のSQLはあまり強力ではありません)
delimiter //
DROP TRIGGER IF EXISTS test_img_trigger;
CREATE TRIGGER test_img_trigger BEFORE INSERT ON venue_images
FOR EACH ROW
BEGIN
DECLARE img_id INT UNSIGNED DEFAULT 0;
SELECT image_id + 1 INTO img_id FROM venue_images WHERE venue_id = NEW.venue_id;
UPDATE venue_images SET image_id = img_id WHERE venue_id = NEW.venue_id;
END IF;
END;//
delimiter;