簡體   English   中英

從一個表到另一個的SQL復制

[英]SQL copy from one table to another

我需要將某些字段從一張表復制到另一張表。

第一個表稱為phpbb_karma,第二個表為smf_log_karma

我需要以下結構:

user_id -> id_executor
poster_id -> id_target
log_time -> karma_time
action -> karma_action

我運行了以下查詢:

INSERT INTO
`smf_log_karma`
(`id_executor`, `id_target`, `log_time`, `action`)
SELECT
(`user_id`, `poster_id`, `karma_time`, `karma_action`)
AS
`id_executor`, `id_target`, `log_time`, `action`
FROM
`phpbb_karma`

它回來了

#1241 - Operand should contain 1 column(s)

任何幫助,將不勝感激,謝謝。

INSERT INTO
        `smf_log_karma`
        (`id_executor`, `id_target`, `log_time`, `action`)

   SELECT
        `user_id`, `poster_id`, `karma_time`, `karma_action`
        FROM
        `phpbb_karma` AS T1
 WHERE NOT EXISTS    (
                SELECT 1
                FROM `smf_log_karma` AS T2
                WHERE
               (T2.id_executor = T1.user_id) );

您需要從兩個表中取出(`)符號

INSERT INTO smf_log_karma 
(id_executor, id_target, log_time, action)
SELECT user_id, poster_id, karma_time, karma_action
FROM
phpbb_karma

並確保您的表和列是相同的數據類型並且完全相同,並且如果PK無法復制id_executor

您是說要復制某些字段而不是全部嗎? 如果是這樣,我認為您忘記了在語法中使用“值”,這就是原因。 您必須使用insert into ....(...) 選擇...。

您只需要執行以下操作即可復制所有行:

INSERT INTO smf_log_karma 
(id_executor, id_target, log_time, action)
SELECT user_id, poster_id, karma_time, karma_action
FROM
phpbb_karma

盡管選擇列名不是必需的,但很有用,但您需要

enter code here
 INSERT INTO smf_log_karma
     (id_executor,
      id_target,
      log_time,
      action)
 SELECT
      user_id as id_executor,
      poster_id as id_target,
      karma_time as log_time,
      karma_action as action
 FROM phpbb_karma

您可以在這里看到它的運行情況

INSERT INTO `smf_log_karma` (`id_executor`, `id_target`, `log_time`, `action`)   
SELECT `user_id` AS `id_executor`, `poster_id` AS `id_target`, `karma_time` AS `log_time`, `karma_action` AS `action`
FROM `phpbb_karma`

我是數據遷移小組的成員。

因此,請嘗試使用該查詢,讓我知道它是否有效。

INSERT INTO `smf_log_karma`
(
     `id_executor`,
     `id_target`, 
     `log_time`, 
     `action`
)
SELECT
     `user_id`, 
     `poster_id`, 
     `karma_time`, 
     `karma_action`
FROM
`phpbb_karma` AS T1
where T1.user_id
not in (select `id_executor` from `smf_log_karma`)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM