Virtual foreign key
Referenced table
{ if (e.detail) { const name = fullNameFromString(e.detail); refTableName = name.pureName; refSchemaName = name.schemaName; if (columns?.length == 1) { const table = $dbInfo?.tables?.find(x => x.pureName == refTableName && x.schemaName == refSchemaName); if (table?.primaryKey?.columns?.length == 1) { columns = [ { ...columns[0], refColumnName: table.primaryKey.columns[0].columnName, }, ]; } } } }} />
Base column - {$tableInfo?.pureName}
Ref column - {refTableName || '(table not set)'}
{#each columns as column, index}
{#key column.columnName} ({ label: col.columnName, value: col.columnName, }))} on:change={e => { if (e.detail) { columns = columns.map((col, i) => (i == index ? { ...col, columnName: e.detail } : col)); } }} /> {/key}
{#key column.refColumnName} ({ label: col.columnName, value: col.columnName, }))} on:change={e => { if (e.detail) { columns = columns.map((col, i) => (i == index ? { ...col, refColumnName: e.detail } : col)); } }} /> {/key}
{ const x = [...columns]; x.splice(index, 1); columns = x; }} />
{/each} { columns = [...columns, {}]; }} />
Target application
{ const appFolder = await saveDbToApp(conid, database, dstApp); await apiCall('apps/save-virtual-reference', { appFolder, schemaName, pureName, refSchemaName, refTableName, columns, }); closeCurrentModal(); }} />