NEW

SurrealDB 4 is here, introducing SurrealDB Earth and SurrealDS!

Learn more
Course content preview

2: Creating records

To create a library, we are going to need a record for it. A CREATE statement followed by a table name is all that we need to create a record.

CREATE library;


But since our town is going to have all sorts of places, let's choose a more general table name: place. We can use the SET keyword to give this record a field called place_type so that we know a bit more about it.

CREATE place SET place_type = "library";


Output
[
  {
    id: place:dg96emq8s3rkaxpdrfq9,
    place_type: 'library'
  }
]


Since we didn't give this place record an ID, SurrealDB will create a random one. Record IDs are composed of the table name, a : after the table name, and something else. If you don't choose an exact record ID, a random GUID (a Globally Unique Identifier) will be added after the : which gives an output like place:wrwfldojvfcyl9gbe5v3.

But you can choose your own record ID instead, like place:1 or place:my_library. Just make sure it hasn't already been used, because you can't create two records with the same ID.

-- Works fine 
CREATE place:my_library;
-- Error: already exists
CREATE place:my_library;


Output · Query 1
[
  {
    id: place:my_library
  }
]
Output · Query 2
'Database record `place:my_library`
already exists'


THE PLATFORM

Everything an application and its agents know. Five surfaces, one engine.

IN PRODUCTION

Trusted at scale. Samsung, Nvidia, Verizon, Tencent, and Walmart run on SurrealDB.

14,000+

Developers building on SurrealDB Cloud

4M+

Developers building on SurrealDB worldwide

FROM THE TEAMS

SurrealDB gives us a foundation where we can unify semantic search, knowledge graphs, and AI-driven decision making without stitching together multiple systems. Collapsing responsibility into SurrealDB has become our default engineering posture.
Justin Foley

VP of Engineering, Later