我有一个MySQL数据库,其中包含一个名为uploads的表。该表格包含以下列:
id(PK),视频,音频,图像。
我在同一个数据库中设置了3个其他表(视频,音频,图像)。它们各有以下列:
视频:id(PK),视频
audios:id(PK),audio
图像:id(PK),图像
是否可以让第一个表格的列自动填充相应其他表格中的任何数据。
例如:如果我添加' image.jpg'到图像表中的图像列,' image.jpg'将自动添加到上传数据库中的图像列。
答案 0 :(得分:1)
Mysql triggers将帮助您解决问题
如果你这样创建你的表:
CREATE TABLE `uploads` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `audio` varchar(45) DEFAULT NULL, `video` varchar(45) DEFAULT NULL, `image` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
您可以使用以下内容:
DELIMITER // CREATE TRIGGER populate_after_insert AFTER INSERT ON uploads FOR EACH ROW BEGIN DECLARE latestAudio varchar(50); DECLARE latestVideo varchar(50); DECLARE latestImage varchar(50); SELECT uploads.audio FROM uploads GROUP BY id DESC LIMIT 1 INTO latestAudio; SELECT uploads.video FROM uploads GROUP BY id DESC LIMIT 1 INTO latestVideo; SELECT uploads.image FROM uploads GROUP BY id DESC LIMIT 1 INTO latestImage; INSERT INTO images(id, image) VALUES(null, latestImage); INSERT INTO audios(id, audio) VALUES(null, latestAudio); INSERT INTO videos(id, video) VALUES(null, latestVideo); END; // DELIMITER ;