1

非常简单......我有一个songs具有现有主键值的表,其中一些已经存在于表的songsID列中iTunesImport

该命令的重点是将表中的新值添加为iTunesImport表中的新条目songs

我已经阅读了一堆示例,他们说要使用以下语法,唯一的区别是我需要使用SELECT DISTINCT,因为表中有给定songsID值的多个实例iTunesImport

INSERT INTO songs(ID)
SELECT DISTINCT songsID FROM iTunesImport
WHERE (songsID IS NOT NULL)
ON DUPLICATE KEY UPDATE ID = ID

执行时返回0行,songs表没有变化。

下面是我的表的部分......

songs

ID, varchar(15), Not NULL   
Name, varchar(200), Not NULL    
SongType, varchar(200), NULL    
Description, varchar(1000), NULL
DebutDate, date, NULL
TimeStamp, timestamp, Not NULL

以下行

2nd        2nd Self         Original    NULL    NULL    2014-03-11 18:46:40
3xwide     The Triple Wide  Original    NULL    NULL    2014-03-11 18:46:40
40s        40's Theme       Original    NULL    NULL    2014-03-11 18:46:40
ahab       Ahab             Original    NULL    NULL    2014-03-11 18:46:40
allintime  All in Time      Original    NULL    NULL    2014-03-11 18:46:40

我的iTunesImport桌子

iTunesImport

KEY, int(11), No
albumsID, varchar(7), Yes
songsID, varchar(15), Yes
TrackName, varchar(200), No

此表中还有其他列,但在这种情况下它们无关紧要

13  p013    stew           "Der Bluten Kat"
14  p013    stew           "Der Bluten Kat"
15  p013    stew           "Ocean Billy"
16  p014    tinkles        Miss Tinkle's Overture
17  p014    wws            Women Wine and Song >
18  p014    utopian        Utopian Fir >
19  p014    katstune       Kat's Tune >
20  p014    utopian        Utopian Fir
21  p014    billy          Ocean Billy >
22  p014    blacksabbath   Black Sabbath >
23  p014    warpigs        War Pigs >
24  p014    billy          Ocean Billy
25  p014    pequod         The Pequod >
26  p014    ahab           Ahab >
27  p014    pequod         The Pequod >
28  p014    andy           Andy's Last Beer
29  p014    mulche         Mulche's Odyssey
30  p015    dumpcity       Dump City
4

2 回答 2

1

关于什么:

INSERT INTO songs(ID)
SELECT DISTINCT songsID FROM iTunesImport
WHERE (songsID IS NOT NULL)
AND songsID NOT IN (SELECT ID FROM songs)
于 2014-05-13T04:52:47.350 回答
-1

我以前从未见过你的WHERE条款。你确定它是正确的吗?我认为以下内容更有意义。

  INSERT INTO songs(ID)
  SELECT DISTINCT songsID FROM iTunesImport
  WHERE (NOT ISNULL(songsID))
  ON DUPLICATE KEY UPDATE ID = ID
于 2014-05-13T02:12:50.980 回答