将数据插入连接表的最佳方法是什么

时间:2013-10-25 09:57:45

标签: mysql sql join insert

这是我用于sql查询的表结构:

SONGS         MEDIA
id            id
track         song_id
artist        source
added_on      url

如何插入歌曲(曲目,艺术家,added_on,来源,网址)? MEDIA.SONG_ID必须是正确的SONGS.ID

MEDIA.ID and SONGS.ID是主要和自动增量。

有人知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

在标准SQL中,您将使用事务以及ID序列上的nextvalcurrval函数:

BEGIN
INSERT INTO songs VALUES(nextval('songs_id_sequence'), ...);
INSERT INTO media VALUES(nextval('media_id_sequence'), currval('songs_id_sequence'), ...);
COMMIT

答案 1 :(得分:0)

1)第一个选项

你可以插入SONGS,获得歌曲ID,然后插入MEDIA http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

2)第二个选项

使用可更新视图(构建在这两个表之上) http://dev.mysql.com/doc/refman/5.1/en/view-updatability.html

3)第三个选项

使用与第一个选项类似的逻辑的存储过程