我有两个表,其中一个是'user_flag',另一个是'playlist_data'。
我想将'user_flag'的所有'object_id'列条目放入'playlist_data'的相应'object_id'列,但前提是这些条目的'3'作为'user'条目,并且它们还不存在(没有重复的'object_id'!)。
我试着学习如何做到这一点,这就是我发现的:
INSERT INTO playlist_data (object_id)
SELECT object_id FROM user_flag
WHERE user='3';
ON DUPLICATE KEY UPDATE object_id=object_id
这会正常运作吗?
但我也想在同一时间做更多事情,我似乎无法找到答案:
1)我还想用这个插入新数据。我希望所有新插入的条目在'playlist_data'的'filetype'列中也包含'5'。
我只是
INSERT INTO playlist_data (filtype)
VALUES (5)
在所有这些中间?
2)两个表都有一个'id'列,是否会自动生成一个新的id,后跟'playlist_data'的最新'id'?
例如,我从'user_flag'转移'id'为'150'的条目,而'playlist_data'中的最高'id'为'63',将插入的'64' ',或者我是否需要以某种方式定义?
答案 0 :(得分:0)
只需在SELECT
:
INSERT INTO playlist_data (object_id, filtype)
SELECT object_id, 5
FROM user_flag
WHERE user = 3
ON DUPLICATE KEY UPDATE object_id = VALUES(object_id);
注意:
VALUES(object_id)
。ON DUPLICATE KEY UPDATE