Mysql

將數據從一個數據庫插入到特定列中的另一個數據庫不起作用

  • August 9, 2021

我已經csv格式化了數據,我想將數據放到我現有數據庫表的特定列中。我試圖這樣做,LOAD DATA INFILE...我什至取消了註釋,mysqli.allow_local_infile但我仍然遇到同樣的錯誤

禁止載入數據本地 infile 檢查 mysqli.allow_local_infile

然後,我想用另一種方​​式來做,我剛剛創建了一個名為的新數據庫staging_hadiths,並且只創建了那些 ibn my 的列CSV file,並將我的 CSV 上傳到該數據庫。現在,我試圖將該數據庫的表數據複製到我real database table的特定列中,如下所示:

SELECT hadithUrdu, urduNarrator from staging_hadiths.hadiths;
UPDATE ifislam_hadiths.hadiths SET hadithUrdu=staging_hadiths.hadiths.hadithUrdu AND urduNarrator=staging_hadiths.hadiths.urduNarrator WHERE hadithNumber BETWEEN 3949 AND 4977

但我得到一個錯誤: 在此處輸入圖像描述

數據太大,無法將數據一一放入數據庫。我希望你們能幫助我。 我必須使用where between for some reasons,因此數據可以以正確的順序插入到我的真實數據庫表中。

**我的暫存數據庫:**我的真實數據庫:

在此處輸入圖像描述

在此處輸入圖像描述

我怎樣才能做到這一點?

如果你想用另一個表中的數據更新一個表,你必須加入這些表。在您的情況下,如果暫存“聖訓”僅包含一行,則可以省略連接,如下所示:

UPDATE ifislam_hadiths.hadiths h1
inner join staging_hadiths.hadiths h2
SET h1.hadithUrdu = h2.hadithUrdu, -- AND does not comply with mysql syntax
   h1.urduNarrator = h2.hadiths.urduNarrator
WHERE h1.hadithNumber BETWEEN 3949 AND 4977

但通常您會連接這兩個表,以便要更新的表中的每一行對應於另一個表中的一行。

來自教程點的一個例子

引用自:https://dba.stackexchange.com/questions/297745