'Add to Database' question

So far I'm enjoying SiYuan the most out of available PKM tools. Great job!

Recently, I noticed there is a functionality on a block "Add to database". When I click it, it adds the block to a selected database, but all the columns are empty. I am wondering what are the use cases for this feature? I was wondering if I can add to a database that will automatically fill in data in table with information from the sub-blocks from the added block.

Thank you in advance for the response!

With regards,


    Related articles

    Welcome to here!

    Here we can learn from each other how to use SiYuan, give feedback and suggestions, and build SiYuan together.

    Signup About
    Please input reply content ...
    • 88250

      This function can be seen as recording metadata for blocks and managing these metadata (sorting, filtering, etc.) through different views, thereby making it easier to manage blocks.

      1 Reply
    • revachol

      Just wondering: Is there a way to automatically populate some of the metadata depending on which document the block is inserted from? For example, If I insert a block from a document called "Programming" into a database I would like to display the document's title "Programming" in one of the database's columns without having to type it in myself

      1 Reply
    • WanChen

      You may need template columns


      1 Reply
    • revachol

      Thanks. I have already tried using template columns but not sure it's possible to pull in the document's title with them. Templates such as .action {.title} don't seem to work for me. Perhaps, I haven't figured out the correct syntax?

      1 Reply
    • WanChen

      There should be no space between “.action” and “{ .title}”.

      1 Reply
    • revachol

      If I set ".action{ .title}" as the template value, the column will be populated with the value of another column named "title" if it exists. It doesn't retrieve the value of the document title though which is what I would like to achieve. E.g., in the example below I would like for the text "Programming" to appear in the column "Template" because "Programming" is the document the "Example database entry" was inserted from. That doesn't work, however. Thanks for your help so far, though. screenshot.png


      1 Reply
    • WanChen 1

      Please use the following template.

      .action{$id := .id}
      .action{$blockList := queryBlocks "SELECT * FROM blocks where id = (select root_id from blocks where id = '?')" $id}
      .action{$block := first $blockList}
      1 Reply
    • revachol

      Thank you! That works.

    • Eric

      Those are great answers, thanks. I was looking for this.

      Just one more thing remains though...

      Can I display block's attributes inside of it?

    • alvorithm
      VIP Warrior

      Hi, @revachol, your question and @WanChen's answer helpe me come up with a solution to a slightly related problem: Advice on how to improve a database template

      Thank you!

    Please input reply content ...