# Insert with object INSERT INTO person {name: "Tobie"} ==> SurrealQL(InsertStatement(Keyword,Keyword,Ident,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose))) # Insert with VALUES syntax INSERT INTO person (name, age) VALUES ("Tobie", 30) ==> SurrealQL(InsertStatement(Keyword,Keyword,Ident,Ident,Ident,Keyword,String,Number(Int))) # Insert with IGNORE INSERT IGNORE INTO person {name: "Tobie"} ==> SurrealQL(InsertStatement(Keyword,Keyword,Keyword,Ident,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose))) # Insert RELATION INSERT RELATION INTO knows {in: person:tobie, out: person:jaime} ==> SurrealQL(InsertStatement(Keyword,Keyword,Keyword,Ident,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,RecordId(RecordTbIdent,Colon,RecordIdIdent)),ObjectProperty(ObjectKey(KeyName),Colon,RecordId(RecordTbIdent,Colon,RecordIdIdent))),BraceClose))) # Insert bulk array INSERT INTO person [{name: "Tobie"}, {name: "Jaime"}] ==> SurrealQL(InsertStatement(Keyword,Keyword,Ident,BulkInsert("[",Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose),Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose),"]"))) # Insert with ON DUPLICATE KEY UPDATE INSERT INTO person {name: "Tobie"} ON DUPLICATE KEY UPDATE age = 31 ==> SurrealQL(InsertStatement(Keyword,Keyword,Ident,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose),Keyword,Keyword,Keyword,Keyword,FieldAssignment(Ident,Operator,Number(Int)))) # Insert with RETURN INSERT INTO person {name: "Tobie"} RETURN name ==> SurrealQL(InsertStatement(Keyword,Keyword,Ident,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose),ReturnClause(Keyword,Fields(Predicate(Ident))))) # Insert with variable INSERT INTO person $data ==> SurrealQL(InsertStatement(Keyword,Keyword,Ident,VariableName))