1import{_ as i,o as a,i as n,am as l}from"./chunks/framework.BpPtVZkH.js";const g=JSON.parse('{"title":"ToSQL Method","description":"","frontmatter":{},"headers":[],"relativePath":"api/toSql.md","filePath":"api/toSql.md","lastUpdated":1735644476000}'),t={name:"api/toSql.md"};function h(k,s,p,e,r,E){return a(),n("div",null,[...s[0]||(s[0]=[l(`<h1 id="tosql-method" tabindex="-1">ToSQL Method <a class="header-anchor" href="#tosql-method" aria-label="Permalink to "ToSQL Method"">â</a></h1><p>The <code>toSQL()</code> method generates an SQL INSERT statement for the collection data. It automatically creates the appropriate column names and formats values correctly for SQL insertion.</p><h2 id="basic-syntax" tabindex="-1">Basic Syntax <a class="header-anchor" href="#basic-syntax" aria-label="Permalink to "Basic Syntax"">â</a></h2><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toSQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(table: string): string</span></span></code></pre></div><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">â</a></h2><h3 id="basic-usage" tabindex="-1">Basic Usage <a class="header-anchor" href="#basic-usage" aria-label="Permalink to "Basic Usage"">â</a></h3><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { collect } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'ts-collect'</span></span> 2<span class="line"></span> 3<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> users</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> collect</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span></span> 4<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Chris'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, email: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'[email protected]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span> 5<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Avery'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, email: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'[email protected]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 6<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">])</span></span> 7<span class="line"></span> 8<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> sql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> users.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toSQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'users'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span> 9<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(sql)</span></span> 10<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// INSERT INTO users (id, name, email)</span></span> 11<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// VALUES</span></span> 12<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// (1, "Chris", "[email protected]"),</span></span> 13<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// (2, "Avery", "[email protected]");</span></span></code></pre></div><h3 id="working-with-different-types" tabindex="-1">Working with Different Types <a class="header-anchor" href="#working-with-different-types" aria-label="Permalink to "Working with Different Types"">â</a></h3><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span>
13<pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Product</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 14<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> sku</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 15<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 16<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> price</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> number</span></span> 17<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> inStock</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> boolean</span></span> 18<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> updatedAt</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Date</span></span> 19<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 20<span class="line"></span> 21<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> products</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> collect</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">Product</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">>([</span></span> 22<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 23<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> sku: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'LAPTOP1'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 24<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Pro Laptop'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 25<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> price: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">999.99</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 26<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> inStock: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 27<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> updatedAt: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Date</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'2024-01-01'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span> 28<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 29<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">])</span></span> 30<span class="line"></span> 31<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> sql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> products.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toSQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'products'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span> 32<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// INSERT INTO products (sku, name, price, inStock, updatedAt)</span></span> 33<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// VALUES</span></span> 34<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ("LAPTOP1", "Pro Laptop", 999.99, true, "2024-01-01T00:00:00.000Z");</span></span></code></pre></div><h3 id="real-world-example-e-commerce-data-export" tabindex="-1">Real-world Example: E-commerce Data Export <a class="header-anchor" href="#real-world-example-e-commerce-data-export" aria-label="Permalink to "Real-world Example: E-commerce Data Export"">â</a></h3><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span>
34<pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> OrderData</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 35<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> orderId</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 36<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> customerEmail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 37<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> items</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // JSON string</span></span> 38<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> total</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> number</span></span> 39<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> status</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 40<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> createdAt</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Date</span></span> 41<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 42<span class="line"></span> 43<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> OrderExporter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 44<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> private</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> orders</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Collection</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">OrderData</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">></span></span> 45<span class="line"></span> 46<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> constructor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">orders</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> OrderData</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[]) {</span></span> 47<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.orders </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> collect</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(orders)</span></span> 48<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 49<span class="line"></span> 50<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> generateInsertStatements</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span> 51<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Format orders for SQL insertion</span></span> 52<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> formattedOrders</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.orders.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">
52order</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ({</span></span> 53<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">order,</span></span> 54<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> items: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">JSON</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">stringify</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(order.items),</span></span> 55<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> createdAt: order.createdAt.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toISOString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span> 56<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }))</span></span> 57<span class="line"></span> 58<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> collect</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(formattedOrders).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toSQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'orders'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span> 59<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 60<span class="line"></span> 61<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> generateBackupQueries</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span> 62<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> timestamp</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Date</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toISOString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">split</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'T'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span> 63<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> backupTable</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> \`orders_backup_\${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">timestamp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span></span> 64<span class="line"></span> 65<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [</span></span> 66<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Create backup table</span></span> 67<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> \`CREATE TABLE \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">backupTable</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">} LIKE orders;\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 68<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Insert data</span></span> 69<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.orders.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toSQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(backupTable)</span></span> 70<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ].</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">join</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\n\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span> 71<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 72<span class="line"></span> 73<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> generateBatchInserts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">batchSize</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> number</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 1000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span> 74<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.orders</span></span> 75<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chunk</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(batchSize)</span></span> 76<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">batch</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> batch.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toSQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'orders'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">))</span></span> 77<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">all</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span> 78<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 79<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 80<span class="line"></span> 81<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Usage</span></span> 82<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> exporter</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> OrderExporter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span></span> 83<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 84<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> orderId: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'ORD-1'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 85<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">
85 customerEmail: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'[email protected]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 86<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> items: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">JSON</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">stringify</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([{ id: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'P1'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, qty: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }]),</span></span> 87<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> total: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">999.99</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 88<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> status: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'completed'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 89<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> createdAt: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Date</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span> 90<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 91<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">])</span></span> 92<span class="line"></span> 93<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> sqlStatements</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> exporter.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">generateBatchInserts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span></code></pre></div><h2 id="type-safety" tabindex="-1">Type Safety <a class="header-anchor" href="#type-safety" aria-label="Permalink to "Type Safety"">â</a></h2><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 94<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> number</span></span> 95<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 96<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> isActive</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> boolean</span></span> 97<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 98<span class="line"></span> 99<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> users</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> collect</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">>([</span></span> 100<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Chris'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, isActive: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 101<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">])</span></span> 102<span class="line"></span> 103<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Type-safe SQL generation</span></span> 104<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> sql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> users.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toSQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'users'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span> 105<span class="line"></span> 106<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Table name must be a string</span></span> 107<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// users.toSQL(123)</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">
107 // â TypeScript error</span></span></code></pre></div><h2 id="return-value" tabindex="-1">Return Value <a class="header-anchor" href="#return-value" aria-label="Permalink to "Return Value"">â</a></h2><ul><li>Returns a string containing SQL INSERT statement</li><li>Properly escapes string values</li><li>Formats dates as ISO strings</li><li>Handles boolean values</li><li>Handles null values</li><li>Empty string if collection is empty</li></ul><h2 id="common-use-cases" tabindex="-1">Common Use Cases <a class="header-anchor" href="#common-use-cases" aria-label="Permalink to "Common Use Cases"">â</a></h2><h3 id="_1-data-migration" tabindex="-1">1. Data Migration <a class="header-anchor" href="#_1-data-migration" aria-label="Permalink to "1. Data Migration"">â</a></h3><ul><li>Database transfers</li><li>System migrations</li><li>Data backups</li><li>Schema updates</li><li>Archive creation</li></ul><h3 id="_2-data-import" tabindex="-1">2. Data Import <a class="header-anchor" href="#_2-data-import" aria-label="Permalink to "2. Data Import"">â</a></h3><ul><li>Bulk imports</li><li>Data seeding</li><li>Test data creation</li><li>Sample data generation</li><li>Initial data setup</li></ul><h3 id="_3-backup-operations" tabindex="-1">3. Backup Operations <a class="header-anchor" href="#_3-backup-operations" aria-label="Permalink to "3. Backup Operations"">â</a></h3><ul><li>Database backups</li><li>Data snapshots</li><li>Version control</li><li>Recovery points</li><li>Audit trails</li></ul><h3 id="_4-data-synchronization" tabindex="-1">4. Data Synchronization <a class="header-anchor" href="#_4-data-synchronization" aria-label="Permalink to "4. Data Synchronization"">â</a></h3><ul><li>System sync</li><li>Database replication</li><li>Mirror updates</li><li>Cross-platform sync</li><li>Data consistency</li></ul><h3 id="_5-data-export" tabindex="-1">5. Data Export <a class="header-anchor" href="#_5-data-export" aria-label="Permalink to "5. Data Export"">â</a></h3><ul><li>Report generation</li><li>Data extraction</li><li>System integration</li><li>External sharing</li><li>Data transfer</li></ul>`,26)])])}const y=i(t,[["render",h]]);export{g as __pageData,y as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.