将约束添加到插入MySQL表中的数据

时间:2018-03-07 22:44:12

标签: mysql

我有一个在this ER-Diagram中表示的mysql数据库。我想在创建ConcertSongs表时添加约束,该表说:“不允许将歌曲添加到乐队没有唱这首歌的音乐会中”。我怎么能这样做?

感谢任何帮助!

1 个答案:

答案 0 :(得分:-1)

如果您尝试将歌曲与乐队联系起来,请执行以下操作:

INSERT INTO ConcertSongs (SongID, ConcertID) SELECT AlbumSOngs.SongID, Concert.ConcertID WHERE ConcertSongs.SongID = AlbumSongs.SongID AND AlbumSongs.AlbumID = Albums.AlbumID;

如果您与音乐会ID有关,那么您需要在这样的CASE中使用Alias:

SELECT col1, col2, etc. (case when (state1 = '' and state2 = '') 
 THEN
      //new SQL 
 ELSE
      //SQL 
 END)
 as state from table;

根据您的表格复杂程度,我建议添加新列以用于将它们相互关联,这会减少SQL运行时间,并使您更容易。