使用 SQL 大量同步

動詞:sqlBulkSynchronize

可用來源: <Enterprise>

在兩個表格之間執行大量同步化作業,以便資料庫中的所有目標表格值都與來源表格中的目標表格值相同。

語法

sqlBulkSynchronize --dataTable(DataTable) --connection(DbConnection) --tablename(String) [--batchsize(Numeric)] [--mappings(String)] [--timeout(TimeSpan)] (Boolean)=value

輸入

Script 設計工具 必要 接受的類型 說明
--dataTable 資料表 必要 資料表 將作為參照以與資料庫表格保持同步化的來源資料表。
-- connection 連線 必要 資料庫連線 資料庫連線變數。 對於此連線,提供了下列選項:
  • MySQL 連線
  • 連接至 SQL Server
  • PostgreSQL 連線
  • --tablename 表格名稱 必要 Text 資料庫表格的名稱。
    --batchsize 批次大小 選用項目 數字 表示每個批處理一次同步的資料數量的數字。
    --mappings 對映 選用項目 Text 使用 SQL 表格值來對映給定的資料表格直欄。 新增對映時,您會找到下列欄位:- 直欄名稱: 您要對映的 資料表 直欄名稱;- 直欄號碼: 您要對映的 資料表 直欄號碼。 直欄號碼從 1 開始;-未命名欄位: 指 SQL 表格直欄名稱。
    只能在直欄名稱直欄號碼其中一個欄位輸入一值。
    --timeout 逾時值 選用項目 時間跨距數字文字 等待建立連線和同步資料的最長時間。

    輸出

    Script 設計工具 接受的類型 說明
    價值 成功 布林值 如果執行成功,則傳回 "True" ;否則,傳回 "False"。

    範例

    使用 SQL 大量同步 指令會對映資料表的值,並與 MySQL 連線 指令所連接資料庫中的 "book" 表格同步。 執行後,會根據需要更新(插入、刪除或新建)資料庫表格中的值。

    defVar --name connection --type DbConnection
    defVar --name tableDataBooks --type DataTable
    defVar --name fileExcelDataBooks --type Excel
    defVar --name tableBooks --type DataTable
    
    // Connect to mysql.
    mysqlConnect --connectionstring "Data Source = 127.0.0.1; User ID = root; Password = \"  \""
    // Create the database "bdTechnology" and the table "book".
    sqlExecuteReader --connection ${connection} --statement "CREATE DATABASE bdTechnology;  \r\nUSE bdTechnology;  \r\nCREATE TABLE book (id INT NOT NULL AUTO_INCREMENT, price DOUBLE, title EXT, author TEXT, publisher TEXT, numPage INT, language CHAR (2), PRIMARY KEY (id)); "
    // Download the following file to execute the command.
    excelOpen --file "excelTableDataBooksInsert_Synchronize.xlsx" fileExcelDataBooks=value
    excelGetTable --file ${fileExcelDataBooks} --getfirstsheet  --entiretable  --hasheaders  tableDataBooks=value
    // Inserts data into the database.
    sqlBulkInsert --dataTable ${tableDataBooks} --connection ${connection} --tablename book
    sqlExecuteReader --connection ${connection} --statement "select * from book;" tableDataBooks=value
    logMessage --message "DATABASE AFTER INSERTION: ${tableDataBooks}" --type "Info"
    // DATABASE AFTER INSERTION:
    // 1 59.99 The Master: How the Search for the Ultimate Machine Learning Algorithm Will Recreate Our World Pedro Domingos Novatec 344 EN
    // 2 30 Steve Jobs Walter Isaacson Simon & Schuster 656 EN
    // 3 120 Elon Musk: How the billionaire CEO of SpaceX and Tesla is shaping our future Ashlee Vance Intrinsic 416 EN
    // 4 200 Brief answers to big questions Stephen Hawking Intrinsic 256 EN
    
    // Download the following file to execute the command.
    excelOpen --file "excelTableDataBooksInsert_Synchronize.xlsx" fileExcelDataBooks=value
    excelGetTable --file ${fileExcelDataBooks} --getfirstsheet  --entiretable  --hasheaders  tableDataBooks=value
    logMessage --message "TABLE TO SYNC:  \r\n ${tableDataBooks}" --type "Info"
    // TABLE TO SYNC:
    // 1 59.99 The Master Algorithm: How the Search for the Ultimate Machine Learning Algorithm Will Recreate Our World Pedro Domingos Novatec 344 EN
    // 2 200 Steve Jobs Walter Isaacson Simon & Schuster 656 EN
    // 3 120 Elon Musk: How the billionaire CEO of SpaceX and Tesla is shaping our future Ashlee Vance Intrinsic 416 EN
    //
    // 5 150 Artificial intelligence Peter Norvig GEN LTC 1016 AL
    // 6 152 Astrophysics for hasties Neil Degrasse Tyson Planet 192 AL
    
    sqlBulkSynchronize --dataTable ${tableDataBooks} --connection ${connection} --tablename book --mappings "number=1=id,number=2=price,number=3=title,number=4=author,number=5=publisher,number=6=numPage,number=7=language"
    sqlExecuteReader --connection ${connection} --statement "SELECT * FROM book" tableBooks=value
    logMessage --message "DATABASE AFTER SYNCHRONIZATION: ${tableBooks}" --type "Info"
    // DATABASE AFTER SYNCHRONIZATION:
    // 1 59.99 The Master Algorithm: How the Search for the Ultimate Machine Learning Algorithm Will Recreate Our World Pedro Domingos Novatec 344 EN
    // 2 200 Steve Jobs Walter Isaacson Simon & Schuster 656 EN
    // 3 120 Elon Musk: How the billionaire CEO of SpaceX and Tesla is shaping our future Ashlee Vance Intrinsic 416 EN
    // 5 150 Artificial intelligence Peter Norvig GEN LTC 1016 AL
    // 6 152 Astrophysics for hasties Neil Degrasse Tyson Planet 192 AL
    sqlExecute --connection ${connection} --statement "DROP DATABASE bdtechnology"
    
    下載檔案
    若要讓 Script 正常運作,您需要下載檔案,並在 開啟 Office 檔案 指令的 檔案路徑 參數中輸入其路徑。

    另請參閱

  • 使用 SQL 大量刪除
  • 使用 SQL 大量載入
  • 使用 SQL 大量合併
  • 使用 SQL 大量升級
  • 執行 SQL 指令
  • 執行 SQL 程序讀取器
  • 執行 SQL 讀取器
  • 執行 SQL 純量
  • SQL 程序
  • 終止 SQL 連線