从另一个表插入并插入新值

时间:2016-09-18 22:53:06

标签: mysql sql

我有两个表,其中一个是'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' ',或者我是否需要以某种方式定义?

1 个答案:

答案 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);

注意:

  • 我猜id列是数字。因此,我删除了单引号。
  • 我在VALUES(object_id)
  • 中使用ON DUPLICATE KEY UPDATE
  • 仅在声明的最后部分使用分号非常重要。
相关问题