Current section
Files
Jump to
Current section
Files
doc/readme.html
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="generator" content="ExDoc v0.29.4"> <meta name="project" content="ecto_entity v0.1.2"> <title>Ecto Entity — ecto_entity v0.1.2</title> <link rel="stylesheet" href="dist/html-elixir-HHVY3JYD.css" /> <script src="dist/handlebars.runtime-NWIB6V2M.js"></script> <script src="dist/handlebars.templates-XWGFFSCD.js"></script> <script src="dist/sidebar_items-404C5574.js"></script> <script src="docs_config.js"></script> <script async src="dist/html-JDI3AVDD.js"></script> </head> <body data-type="extras" class="page-extra"> <script> try { var settings = JSON.parse(localStorage.getItem('ex_doc:settings') || '{}'); if (settings.theme === 'dark' || ((settings.theme === 'system' || settings.theme == null) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.body.classList.add('dark') } } catch (error) { } </script><div class="main"><button class="sidebar-button sidebar-toggle" aria-label="toggle sidebar"> <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i></button><section class="sidebar"> <form class="sidebar-search" action="search.html"> <button type="submit" class="search-button" aria-label="Submit Search"> <i class="ri-search-2-line" aria-hidden="true" title="Submit search"></i> </button> <button type="button" tabindex="-1" class="search-close-button" aria-label="Cancel Search"> <i class="ri-close-line ri-lg" aria-hidden="true" title="Cancel search"></i> </button> <label class="search-label"> <p class="sr-only">Search</p> <input name="q" type="text" class="search-input" placeholder="Search..." aria-label="Input your search terms" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" /> </label> </form> <div class="autocomplete"> <div class="autocomplete-results"> </div> </div> <div class="sidebar-header"> <div class="sidebar-projectDetails"> <a href="readme.html" class="sidebar-projectName" translate="no">ecto_entity </a> <div class="sidebar-projectVersion" translate="no"> v0.1.2 </div> </div> <ul class="sidebar-listNav"> <li><a id="extras-list-link" href="#full-list">Pages</a></li> <li><a id="modules-list-link" href="#full-list">Modules</a></li> </ul> </div> <div class="gradient"></div> <ul id="full-list"></ul></section><section class="content"> <output role="status" id="toast"></output> <div class="content-outer"> <div id="content" class="content-inner"><h1><button class="icon-action display-settings"> <i class="ri-settings-3-line"></i> <span class="sr-only">Settings</span></button> <a href="https://github.com/kamaroly/ecto_entity/blob/main/README.md#L1" title="View Source" class="icon-action" rel="help"> <i class="ri-code-s-slash-line" aria-hidden="true"></i> <span class="sr-only">View Source</span> </a> <span>Ecto Entity</span></h1><h1>Introduction</h1><p>The missing Elixir Phoenix package to achieve Ecto > 80% common operations with < 20% effort.</p><p>Inspired by Laravel/ Php Eloquent package, Ecto Entity includes injectable functions that makes it enjoyable to interact with your database.When using Ecto Entity, each database table has a corresponding Schema(Model) that is used to interact with that table.In addition to retrieving records from the database table, Ecto Entity allows you to insert, update, and delete records from the table as well.</p><p>The goal of this package is to make it deadly simple to interact with Ecto without having to necessary write custom CRUD operations.</p><h1>Getting Started</h1><p>This guide is an introduction to Ecto Entity, the missing Phoenix Ecto package to achieve +80% of common operationsless than 20% of effort it would normally take.Ecto Entity provides a standardized API and a set of abstractions for interacting with database tables, so that your phoenix Elixir developerscan focus on what's specific to your project.</p><p>In this guide, we're going to learn some basics about Ecto Entity, such as creating,reading, updating and destroying records from a database. If you wantto see the code from this guide, you can view it <a href="https://github.com/kamaroly/ecto_entity">at kamaroly/ecto_entity on GitHub</a>.</p><p><strong>This guide will require you to have setup Entity beforehand.</strong></p><h1>Installation</h1><p>To add Entity to your application, The first step is to add Entity to your <code class="inline">mix.exs</code> file,which we'll do by changing the <code class="inline">deps</code> definition in that file to this:</p><pre><code class="makeup elixir" translate="no"><span class="w"> </span><span class="kd">defp</span><span class="w"> </span><span class="nf">deps</span><span class="w"> </span><span class="k" data-group-id="1165249085-1">do</span><span class="w"> </span><span class="p" data-group-id="1165249085-2">[</span><span class="w"> </span><span class="p" data-group-id="1165249085-3">{</span><span class="ss">:ecto_entity</span><span class="p">,</span><span class="w"> </span><span class="s">"~> 0.1.1"</span><span class="p" data-group-id="1165249085-3">}</span><span class="w"> </span><span class="p" data-group-id="1165249085-2">]</span><span class="w"> </span><span class="k" data-group-id="1165249085-1">end</span><span class="w"></span></code></pre><p>Then, to install it, you will run this command:</p><pre><code class="makeup elixir" translate="no"><span class="n">mix</span><span class="w"> </span><span class="n">deps</span><span class="o">.</span><span class="n">get</span></code></pre><h2 id="configure-your-ecto-repo" class="section-heading"> <a href="#configure-your-ecto-repo" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">configure-your-ecto-repo</p> </a> Configure Your Ecto Repo</h2><p>Ecto Entity needs to know what repository to use while running database query. To do that, add <code class="inline">config :ecto_entity, app_name: :your_app_name</code> to your <code class="inline">config/config.exs</code> file. <code class="inline">:your_app_name</code> will be often the app configured in <code class="inline">mix.exs</code> under <code class="inline">project</code> > <code class="inline">app</code>.</p><pre><code class="makeup elixir" translate="no"><span class="kn">import</span><span class="w"> </span><span class="nc">Config</span><span class="w"> </span><span class="c1"># Configure your APP name so that Ecto Entity can know</span><span class="w"></span><span class="c1"># What Ecto Repo to use for the entity</span><span class="w"></span><span class="n">config</span><span class="w"> </span><span class="ss">:ecto_entity</span><span class="p">,</span><span class="w"> </span><span class="ss">app_name</span><span class="p">:</span><span class="w"> </span><span class="ss">:your_ecto_elixir_app_name</span><span class="w"></span></code></pre><h2 id="adding-entity-to-your-schema" class="section-heading"> <a href="#adding-entity-to-your-schema" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">adding-entity-to-your-schema</p> </a> Adding Entity To Your Schema</h2><p>To start off with, we'll need to include <code class="inline">Entity</code> in our existing Phoenix Schema using <code class="inline">use Ecto.Entity</code> in your Schema module, like the following:</p><pre><code class="makeup elixir" translate="no"><span class="w"> </span><span class="kd">defmodule</span><span class="w"> </span><span class="nc">MyApp.Person</span><span class="w"> </span><span class="k" data-group-id="7404464208-1">do</span><span class="w"> </span><span class="kn">import</span><span class="w"> </span><span class="nc">Ecto.Changeset</span><span class="w"> </span><span class="kn">use</span><span class="w"> </span><span class="nc">Ecto.Schema</span><span class="w"> </span><span class="kn">use</span><span class="w"> </span><span class="nc">Ecto.Entity</span><span class="w"> </span><span class="c1"># Include Entity in your normal schema</span><span class="w"> </span><span class="n">schema</span><span class="w"> </span><span class="s">"people"</span><span class="w"> </span><span class="k" data-group-id="7404464208-2">do</span><span class="w"> </span><span class="n">field</span><span class="w"> </span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:string</span><span class="w"> </span><span class="n">field</span><span class="w"> </span><span class="ss">:last_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:string</span><span class="w"> </span><span class="n">field</span><span class="w"> </span><span class="ss">:age</span><span class="p">,</span><span class="w"> </span><span class="ss">:integer</span><span class="w"> </span><span class="k" data-group-id="7404464208-2">end</span><span class="w"> </span><span class="kd">def</span><span class="w"> </span><span class="nf">changeset</span><span class="p" data-group-id="7404464208-3">(</span><span class="n">entity</span><span class="p">,</span><span class="w"> </span><span class="n">attrs</span><span class="p" data-group-id="7404464208-3">)</span><span class="w"> </span><span class="k" data-group-id="7404464208-4">do</span><span class="w"> </span><span class="n">entity</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="n">cast</span><span class="p" data-group-id="7404464208-5">(</span><span class="n">attrs</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7404464208-6">[</span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:last_name</span><span class="p" data-group-id="7404464208-6">]</span><span class="p" data-group-id="7404464208-5">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="n">validate_required</span><span class="p" data-group-id="7404464208-7">(</span><span class="p" data-group-id="7404464208-8">[</span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:last_name</span><span class="p" data-group-id="7404464208-8">]</span><span class="p" data-group-id="7404464208-7">)</span><span class="w"> </span><span class="k" data-group-id="7404464208-4">end</span><span class="w"> </span><span class="k" data-group-id="7404464208-1">end</span></code></pre><blockquote><p>NOTE: You must define a <code class="inline">changeset/2</code> function to create and update your schema</p></blockquote><h1>CREATE</h1><p><code class="inline">create/1</code> and <code class="inline">insert/1</code> can be used to stores create table entry. Schema module must have changeset method implementedUse the create method, which accepts an schema of attributes, creates, and inserts it into the database.</p><p>The newly created schema will be returned by the create function.</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">create</span><span class="p" data-group-id="3036698760-1">(</span><span class="p" data-group-id="3036698760-2">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Hand"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Turner"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3036698760-2">}</span><span class="p" data-group-id="3036698760-1">)</span><span class="w"></span><span class="p" data-group-id="3036698760-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"></span><span class="p" data-group-id="3036698760-4">%</span><span class="nc" data-group-id="3036698760-4">Person</span><span class="p" data-group-id="3036698760-4">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3036698760-5">#</span><span class="nc" data-group-id="3036698760-5">Ecto.Schema.Metadata</span><span class="p" data-group-id="3036698760-5"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3036698760-5">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">125</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Hand"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Turner"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="w"></span><span class="p" data-group-id="3036698760-4">}</span><span class="p" data-group-id="3036698760-3">}</span></code></pre><p>Or you may create many entries at once by passing a list of entries to <code class="inline">create_many/1</code>.</p><pre><code class="makeup elixir" translate="no"><span class="nc">Person</span><span class="o">.</span><span class="n">create_many</span><span class="p" data-group-id="3845550929-1">(</span><span class="p" data-group-id="3845550929-2">[</span><span class="w"> </span><span class="p" data-group-id="3845550929-3">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Parisian"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Beier"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p" data-group-id="3845550929-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3845550929-4">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Lang"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Emard"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3845550929-4">}</span><span class="w"></span><span class="p" data-group-id="3845550929-2">]</span><span class="p" data-group-id="3845550929-1">)</span></code></pre><h1>READ</h1><h2 id="find-1" class="section-heading"> <a href="#find-1" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">find-1</p> </a> <code class="inline">find/1</code></h2><p>Returns entry with id matching what passed</p><pre><code class="makeup elixir" translate="no"><span class="w"> </span><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="4907890755-1">(</span><span class="mi">5</span><span class="p" data-group-id="4907890755-1">)</span><span class="w"> </span><span class="p" data-group-id="4907890755-2">%</span><span class="nc" data-group-id="4907890755-2">Person</span><span class="p" data-group-id="4907890755-2">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4907890755-3">#</span><span class="nc" data-group-id="4907890755-3">Ecto.Schema.Metadata</span><span class="p" data-group-id="4907890755-3"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="4907890755-3">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kristopher"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Keeling"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="w"> </span><span class="p" data-group-id="4907890755-2">}</span></code></pre><p>or find multiple entities with the provided identifiers like the following</p><pre><code class="makeup elixir" translate="no"><span class="nc">Person</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="8642998880-1">(</span><span class="p" data-group-id="8642998880-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8642998880-2">]</span><span class="p" data-group-id="8642998880-1">)</span></code></pre><h2 id="all-0" class="section-heading"> <a href="#all-0" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">all-0</p> </a> <code class="inline">all/0</code></h2><p>Returns all database entries from a schema module</p><pre><code class="makeup elixir" translate="no"><span class="w"></span><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">all</span><span class="p" data-group-id="9395503474-1">(</span><span class="p" data-group-id="9395503474-1">)</span><span class="w"> </span><span class="p" data-group-id="9395503474-2">[</span><span class="w"> </span><span class="p" data-group-id="9395503474-3">%</span><span class="nc" data-group-id="9395503474-3">Person</span><span class="p" data-group-id="9395503474-3">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9395503474-4">#</span><span class="nc" data-group-id="9395503474-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="9395503474-4"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9395503474-4">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"German"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"OConnell"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p" data-group-id="9395503474-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9395503474-5">%</span><span class="nc" data-group-id="9395503474-5">Person</span><span class="p" data-group-id="9395503474-5">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9395503474-6">#</span><span class="nc" data-group-id="9395503474-6">Ecto.Schema.Metadata</span><span class="p" data-group-id="9395503474-6"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9395503474-6">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Fritsch"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kassulke"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="p" data-group-id="9395503474-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9395503474-7">%</span><span class="nc" data-group-id="9395503474-7">Person</span><span class="p" data-group-id="9395503474-7">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9395503474-8">#</span><span class="nc" data-group-id="9395503474-8">Ecto.Schema.Metadata</span><span class="p" data-group-id="9395503474-8"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9395503474-8">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Russel"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Collins"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="p" data-group-id="9395503474-7">}</span><span class="w"> </span><span class="p" data-group-id="9395503474-2">]</span><span class="w"></span></code></pre><h2 id="take-1" class="section-heading"> <a href="#take-1" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">take-1</p> </a> <code class="inline">take/1</code></h2><p>or take a specific number of records</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">take</span><span class="p" data-group-id="9596915051-1">(</span><span class="mi">2</span><span class="p" data-group-id="9596915051-1">)</span><span class="w"> </span><span class="p" data-group-id="9596915051-2">[</span><span class="w"> </span><span class="p" data-group-id="9596915051-3">%</span><span class="nc" data-group-id="9596915051-3">Person</span><span class="p" data-group-id="9596915051-3">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9596915051-4">#</span><span class="nc" data-group-id="9596915051-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="9596915051-4"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9596915051-4">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"German"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"OConnell"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p" data-group-id="9596915051-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9596915051-5">%</span><span class="nc" data-group-id="9596915051-5">Person</span><span class="p" data-group-id="9596915051-5">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9596915051-6">#</span><span class="nc" data-group-id="9596915051-6">Ecto.Schema.Metadata</span><span class="p" data-group-id="9596915051-6"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9596915051-6">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Fritsch"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kassulke"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="p" data-group-id="9596915051-5">}</span><span class="w"></span><span class="p" data-group-id="9596915051-2">]</span><span class="w"></span></code></pre><h2 id="first-0" class="section-heading"> <a href="#first-0" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">first-0</p> </a> <code class="inline">first/0</code></h2><p>Returns the first table entry</p><pre><code class="makeup elixir" translate="no"><span class="w"></span><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">first</span><span class="p" data-group-id="0159836143-1">(</span><span class="p" data-group-id="0159836143-1">)</span><span class="w"></span><span class="p" data-group-id="0159836143-2">%</span><span class="nc" data-group-id="0159836143-2">Person</span><span class="p" data-group-id="0159836143-2">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="0159836143-3">#</span><span class="nc" data-group-id="0159836143-3">Ecto.Schema.Metadata</span><span class="p" data-group-id="0159836143-3"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="0159836143-3">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Johnson"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Bradtke"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="w"></span><span class="p" data-group-id="0159836143-2">}</span><span class="w"></span><span class="gp unselectable">iex(2)></span></code></pre><h2 id="last-0" class="section-heading"> <a href="#last-0" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">last-0</p> </a> <code class="inline">last/0</code></h2><p>Returns the last table entry</p><pre><code class="makeup elixir" translate="no"><span class="w"></span><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">last</span><span class="p" data-group-id="1910230409-1">(</span><span class="p" data-group-id="1910230409-1">)</span><span class="w"></span><span class="p" data-group-id="1910230409-2">%</span><span class="nc" data-group-id="1910230409-2">Person</span><span class="p" data-group-id="1910230409-2">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1910230409-3">#</span><span class="nc" data-group-id="1910230409-3">Ecto.Schema.Metadata</span><span class="p" data-group-id="1910230409-3"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="1910230409-3">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">36</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Cedrick"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Donnelly"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w"></span><span class="p" data-group-id="1910230409-2">}</span></code></pre><h2 id="except-1" class="section-heading"> <a href="#except-1" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">except-1</p> </a> <code class="inline">except/1</code></h2><p>Returns results except the records with the id provided</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">all</span><span class="p" data-group-id="4386754187-1">(</span><span class="p" data-group-id="4386754187-1">)</span><span class="w"></span><span class="p" data-group-id="4386754187-2">[</span><span class="w"> </span><span class="p" data-group-id="4386754187-3">%</span><span class="nc" data-group-id="4386754187-3">Person</span><span class="p" data-group-id="4386754187-3">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4386754187-4">#</span><span class="nc" data-group-id="4386754187-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="4386754187-4"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="4386754187-4">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Hudson"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Berge"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="w"> </span><span class="p" data-group-id="4386754187-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4386754187-5">%</span><span class="nc" data-group-id="4386754187-5">Person</span><span class="p" data-group-id="4386754187-5">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4386754187-6">#</span><span class="nc" data-group-id="4386754187-6">Ecto.Schema.Metadata</span><span class="p" data-group-id="4386754187-6"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="4386754187-6">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Hamill"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Wunsch"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p" data-group-id="4386754187-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4386754187-7">%</span><span class="nc" data-group-id="4386754187-7">Person</span><span class="p" data-group-id="4386754187-7">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4386754187-8">#</span><span class="nc" data-group-id="4386754187-8">Ecto.Schema.Metadata</span><span class="p" data-group-id="4386754187-8"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="4386754187-8">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Alden"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kovacek"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p" data-group-id="4386754187-7">}</span><span class="w"></span><span class="p" data-group-id="4386754187-2">]</span><span class="w"></span><span class="gp unselectable">iex(2)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">except</span><span class="p" data-group-id="4386754187-9">(</span><span class="p" data-group-id="4386754187-10">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4386754187-10">]</span><span class="p" data-group-id="4386754187-9">)</span><span class="w"></span><span class="p" data-group-id="4386754187-11">[</span><span class="w"> </span><span class="p" data-group-id="4386754187-12">%</span><span class="nc" data-group-id="4386754187-12">Person</span><span class="p" data-group-id="4386754187-12">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4386754187-13">#</span><span class="nc" data-group-id="4386754187-13">Ecto.Schema.Metadata</span><span class="p" data-group-id="4386754187-13"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="4386754187-13">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Alden"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kovacek"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p" data-group-id="4386754187-12">}</span><span class="w"></span><span class="p" data-group-id="4386754187-11">]</span></code></pre><p>Or provide only 1 record to exclude</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">except</span><span class="p" data-group-id="1204257776-1">(</span><span class="mi">1</span><span class="p" data-group-id="1204257776-1">)</span><span class="w"></span><span class="p" data-group-id="1204257776-2">[</span><span class="w"> </span><span class="p" data-group-id="1204257776-3">%</span><span class="nc" data-group-id="1204257776-3">Person</span><span class="p" data-group-id="1204257776-3">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1204257776-4">#</span><span class="nc" data-group-id="1204257776-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="1204257776-4"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="1204257776-4">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Hamill"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Wunsch"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p" data-group-id="1204257776-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1204257776-5">%</span><span class="nc" data-group-id="1204257776-5">Person</span><span class="p" data-group-id="1204257776-5">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1204257776-6">#</span><span class="nc" data-group-id="1204257776-6">Ecto.Schema.Metadata</span><span class="p" data-group-id="1204257776-6"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="1204257776-6">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Alden"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kovacek"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p" data-group-id="1204257776-5">}</span><span class="w"></span><span class="p" data-group-id="1204257776-2">]</span></code></pre><h1>UPDATE</h1><p>Updates an existing entry</p><h2 id="update-2" class="section-heading"> <a href="#update-2" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">update-2</p> </a> <code class="inline">update/2</code></h2><p>Updates an existing record identified by an ID</p><pre><code class="makeup elixir" translate="no"><span class="w"> </span><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">update</span><span class="p" data-group-id="1651454406-1">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1651454406-2">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p" data-group-id="1651454406-2">}</span><span class="p" data-group-id="1651454406-1">)</span><span class="w"> </span><span class="gp unselectable">iex> </span><span class="p" data-group-id="1651454406-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1651454406-4">%</span><span class="nc" data-group-id="1651454406-4">Person</span><span class="p" data-group-id="1651454406-4">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1651454406-5">#</span><span class="nc" data-group-id="1651454406-5">Ecto.Schema.Metadata</span><span class="p" data-group-id="1651454406-5"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="1651454406-5">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Yundt"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="p" data-group-id="1651454406-4">}</span><span class="p" data-group-id="1651454406-3">}</span><span class="w"></span></code></pre><h2 id="updates-2" class="section-heading"> <a href="#updates-2" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">updates-2</p> </a> <code class="inline">updates/2</code></h2><p>Updates an existing record identified by its Schema(Model)</p><pre><code class="makeup elixir" translate="no"><span class="w"></span><span class="gp unselectable">iex(1)> </span><span class="n">person</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">Person</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="2423254372-1">(</span><span class="mi">1</span><span class="p" data-group-id="2423254372-1">)</span><span class="w"></span><span class="p" data-group-id="2423254372-2">%</span><span class="nc" data-group-id="2423254372-2">Person</span><span class="p" data-group-id="2423254372-2">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2423254372-3">#</span><span class="nc" data-group-id="2423254372-3">Ecto.Schema.Metadata</span><span class="p" data-group-id="2423254372-3"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="2423254372-3">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Weber"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Ok 2"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"></span><span class="p" data-group-id="2423254372-2">}</span><span class="w"></span><span class="gp unselectable">iex(2)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">update</span><span class="p" data-group-id="2423254372-4">(</span><span class="n">person</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2423254372-5">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p" data-group-id="2423254372-5">}</span><span class="p" data-group-id="2423254372-4">)</span><span class="w"> </span><span class="p" data-group-id="2423254372-6">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2423254372-7">%</span><span class="nc" data-group-id="2423254372-7">Person</span><span class="p" data-group-id="2423254372-7">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2423254372-8">#</span><span class="nc" data-group-id="2423254372-8">Ecto.Schema.Metadata</span><span class="p" data-group-id="2423254372-8"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="2423254372-8">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Ok 2"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="p" data-group-id="2423254372-7">}</span><span class="p" data-group-id="2423254372-6">}</span></code></pre><p>You may update many entries at once using <code class="inline">update_many/2</code> like the following</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="n">query</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">Person</span><span class="o">.</span><span class="n">not_in_ids</span><span class="p" data-group-id="9371689193-1">(</span><span class="mi">1</span><span class="p" data-group-id="9371689193-1">)</span><span class="w"></span><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">update_many</span><span class="p" data-group-id="9371689193-2">(</span><span class="n">query</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9371689193-3">[</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro Paul"</span><span class="p" data-group-id="9371689193-3">]</span><span class="p" data-group-id="9371689193-2">)</span><span class="w"> </span><span class="p" data-group-id="9371689193-4">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9371689193-5">%{</span><span class="ss">update_all</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9371689193-6">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p" data-group-id="9371689193-6">}</span><span class="p" data-group-id="9371689193-5">}</span><span class="p" data-group-id="9371689193-4">}</span></code></pre><h1>DELETE</h1><h4><code class="inline">delete/1</code></h4><p>You may use <code class="inline">delete/1</code> or <code class="inline">destroy/1</code> to delete an existing table entry identifies by its ID.</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(2)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">delete</span><span class="p" data-group-id="6782935403-1">(</span><span class="mi">7</span><span class="p" data-group-id="6782935403-1">)</span><span class="w"> </span><span class="p" data-group-id="6782935403-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6782935403-3">%</span><span class="nc" data-group-id="6782935403-3">Person</span><span class="p" data-group-id="6782935403-3">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6782935403-4">#</span><span class="nc" data-group-id="6782935403-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="6782935403-4"><</span><span class="ss">:deleted</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="6782935403-4">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Glover"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Schimmel"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p" data-group-id="6782935403-3">}</span><span class="p" data-group-id="6782935403-2">}</span></code></pre><p><code class="inline">delete/1</code> works the same as <code class="inline">destroy/1</code>. It's just a preference in pronunciation. </p><pre><code class="makeup elixir" translate="no"><span class="w"></span><span class="gp unselectable">iex(3)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">destroy</span><span class="p" data-group-id="3491442122-1">(</span><span class="mi">2</span><span class="p" data-group-id="3491442122-1">)</span><span class="w"></span><span class="p" data-group-id="3491442122-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"></span><span class="p" data-group-id="3491442122-3">%</span><span class="nc" data-group-id="3491442122-3">Person</span><span class="p" data-group-id="3491442122-3">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3491442122-4">#</span><span class="nc" data-group-id="3491442122-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="3491442122-4"><</span><span class="ss">:deleted</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3491442122-4">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Ruecker"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Lemke"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"></span><span class="p" data-group-id="3491442122-3">}</span><span class="p" data-group-id="3491442122-2">}</span><span class="w"></span></code></pre><p>You may want to delete many records at once. You can do so by passing a list of the ids like the following. When you pass a list of ids to delete or destroy, Ecto.entity return {count_of_deleted_entities, nil}</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(2)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">delete</span><span class="p" data-group-id="1417574690-1">(</span><span class="p" data-group-id="1417574690-2">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1417574690-2">]</span><span class="p" data-group-id="1417574690-1">)</span><span class="w"></span><span class="p" data-group-id="1417574690-3">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p" data-group-id="1417574690-3">}</span></code></pre><h3 id="delete_except-1" class="section-heading"> <a href="#delete_except-1" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">delete_except-1</p> </a> <code class="inline">delete_except/1</code></h3><p>You may wish to delete entries with exception using <code class="inline">delete_except/</code> or <code class="inline">destroy_except/</code></p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">delete_except</span><span class="p" data-group-id="5814553654-1">(</span><span class="p" data-group-id="5814553654-2">[</span><span class="mi">47</span><span class="p">,</span><span class="w"> </span><span class="mi">48</span><span class="p" data-group-id="5814553654-2">]</span><span class="p" data-group-id="5814553654-1">)</span><span class="w"></span><span class="p" data-group-id="5814553654-3">{</span><span class="mi">48</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p" data-group-id="5814553654-3">}</span><span class="w"></span><span class="gp unselectable">iex(2)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">all</span><span class="p" data-group-id="5814553654-4">(</span><span class="p" data-group-id="5814553654-4">)</span><span class="w"></span><span class="p" data-group-id="5814553654-5">[</span><span class="w"> </span><span class="p" data-group-id="5814553654-6">%</span><span class="nc" data-group-id="5814553654-6">Person</span><span class="p" data-group-id="5814553654-6">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="5814553654-7">#</span><span class="nc" data-group-id="5814553654-7">Ecto.Schema.Metadata</span><span class="p" data-group-id="5814553654-7"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="5814553654-7">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">47</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Toy"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Weimann"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="p" data-group-id="5814553654-6">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5814553654-8">%</span><span class="nc" data-group-id="5814553654-8">Person</span><span class="p" data-group-id="5814553654-8">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="5814553654-9">#</span><span class="nc" data-group-id="5814553654-9">Ecto.Schema.Metadata</span><span class="p" data-group-id="5814553654-9"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="5814553654-9">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">48</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Wilderman"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Treutel"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="w"> </span><span class="p" data-group-id="5814553654-8">}</span><span class="w"></span><span class="p" data-group-id="5814553654-5">]</span></code></pre><h2 id="truncate" class="section-heading"> <a href="#truncate" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i> <p class="sr-only">truncate</p> </a> <code class="inline">truncate</code></h2><p>You may truncate a database table by <code class="inline">truncate/0</code>. <code class="inline">truncate</code> delete all entries and reset the table index.</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">truncate</span><span class="p" data-group-id="1825057713-1">(</span><span class="p" data-group-id="1825057713-1">)</span><span class="w"></span><span class="p" data-group-id="1825057713-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1825057713-3">%</span><span class="nc" data-group-id="1825057713-3">MyXQL.Result</span><span class="p" data-group-id="1825057713-3">{</span><span class="w"> </span><span class="ss">columns</span><span class="p">:</span><span class="w"> </span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="ss">connection_id</span><span class="p">:</span><span class="w"> </span><span class="mi">788</span><span class="p">,</span><span class="w"> </span><span class="ss">last_insert_id</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="ss">num_warnings</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p" data-group-id="1825057713-3">}</span><span class="p" data-group-id="1825057713-2">}</span><span class="w"></span></code></pre><h1>CONDITIONS</h1><p>Conditions help you to retrieve data based on the table fields. You may do it using where condition.</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">where</span><span class="p" data-group-id="5462738814-1">(</span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p" data-group-id="5462738814-1">)</span><span class="w"></span><span class="p" data-group-id="5462738814-2">#</span><span class="nc" data-group-id="5462738814-2">Ecto.Query</span><span class="p" data-group-id="5462738814-2"><</span><span class="n">from</span><span class="w"> </span><span class="n">p0</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nc">Person</span><span class="p">,</span><span class="w"> </span><span class="ss">where</span><span class="p">:</span><span class="w"> </span><span class="n">p0</span><span class="o">.</span><span class="n">first_name</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="o">^</span><span class="s">"Kamaro"</span><span class="p" data-group-id="5462738814-2">></span></code></pre><p>You may return the first entry that matches the provided where condition like the following:</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">where_first</span><span class="p" data-group-id="8993845714-1">(</span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="s">"Dominic"</span><span class="p" data-group-id="8993845714-1">)</span><span class="w"></span><span class="p" data-group-id="8993845714-2">%</span><span class="nc" data-group-id="8993845714-2">Person</span><span class="p" data-group-id="8993845714-2">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="8993845714-3">#</span><span class="nc" data-group-id="8993845714-3">Ecto.Schema.Metadata</span><span class="p" data-group-id="8993845714-3"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="8993845714-3">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">42</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Dominic"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Cummings"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="w"></span><span class="p" data-group-id="8993845714-2">}</span></code></pre><p>Or return all entries that matches a given condition like the following:</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(8)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">where_all</span><span class="p" data-group-id="3297597883-1">(</span><span class="ss">:age</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="3297597883-1">)</span><span class="w"> </span><span class="p" data-group-id="3297597883-2">[</span><span class="w"> </span><span class="p" data-group-id="3297597883-3">%</span><span class="nc" data-group-id="3297597883-3">Person</span><span class="p" data-group-id="3297597883-3">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3297597883-4">#</span><span class="nc" data-group-id="3297597883-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="3297597883-4"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3297597883-4">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kihn"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Graham"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p" data-group-id="3297597883-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3297597883-5">%</span><span class="nc" data-group-id="3297597883-5">Person</span><span class="p" data-group-id="3297597883-5">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3297597883-6">#</span><span class="nc" data-group-id="3297597883-6">Ecto.Schema.Metadata</span><span class="p" data-group-id="3297597883-6"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3297597883-6">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Cummerata"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Altenwerth"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p" data-group-id="3297597883-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3297597883-7">%</span><span class="nc" data-group-id="3297597883-7">Person</span><span class="p" data-group-id="3297597883-7">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3297597883-8">#</span><span class="nc" data-group-id="3297597883-8">Ecto.Schema.Metadata</span><span class="p" data-group-id="3297597883-8"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3297597883-8">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">37</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Pollich"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Crist"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p" data-group-id="3297597883-7">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3297597883-9">%</span><span class="nc" data-group-id="3297597883-9">Person</span><span class="p" data-group-id="3297597883-9">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3297597883-10">#</span><span class="nc" data-group-id="3297597883-10">Ecto.Schema.Metadata</span><span class="p" data-group-id="3297597883-10"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3297597883-10">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">39</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Daugherty"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Mills"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p" data-group-id="3297597883-9">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3297597883-11">%</span><span class="nc" data-group-id="3297597883-11">Person</span><span class="p" data-group-id="3297597883-11">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3297597883-12">#</span><span class="nc" data-group-id="3297597883-12">Ecto.Schema.Metadata</span><span class="p" data-group-id="3297597883-12"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3297597883-12">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">41</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Alfonso"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Nitzsche"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p" data-group-id="3297597883-11">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3297597883-13">%</span><span class="nc" data-group-id="3297597883-13">Person</span><span class="p" data-group-id="3297597883-13">{</span><span class="w"> </span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3297597883-14">#</span><span class="nc" data-group-id="3297597883-14">Ecto.Schema.Metadata</span><span class="p" data-group-id="3297597883-14"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3297597883-14">></span><span class="p">,</span><span class="w"> </span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">42</span><span class="p">,</span><span class="w"> </span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Dominic"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Cummings"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p" data-group-id="3297597883-13">}</span><span class="w"> </span><span class="p" data-group-id="3297597883-2">]</span><span class="w"> </span></code></pre><div class="bottom-actions"> <div class="bottom-actions-item"> <a href="api-reference.html" class="bottom-actions-button" rel="prev"> <span class="subheader"> ← Previous Page </span> <span class="title">API Reference </span> </a> </div> <div class="bottom-actions-item"> </div></div> <footer class="footer"> <p> <span class="line"> <a href="https://hex.pm/packages/ecto_entity/0.1.2" class="footer-hex-package">Hex Package</a> <a href="https://preview.hex.pm/preview/ecto_entity/0.1.2">Hex Preview</a> (<a href="https://preview.hex.pm/preview/ecto_entity/0.1.2/show/README.md">current file</a>) </span> <span class="line"> <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages"> Search HexDocs </button> <a href="ecto_entity.epub" title="ePub version"> Download ePub version </a> </span> </p> <p class="built-using"> Built using <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.29.4) for the <a href="https://elixir-lang.org" title="Elixir" target="_blank" translate="no">Elixir programming language</a> </p> </footer> </div> </div></section></div> </body></html>