是否有等效于使用 InnoDB MySQL 数据库并允许在第二个键上自动递增的分组主键?
我要实现的是一个基于父对象 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;