Creating Objects
The create
statement can be used to populate the database by
creating objects of a given
type. Each new objects can
thereby be assigned initial values for specified attributes
(properties).
Example:
create type Person;
create function name(Person) -> Charstring as stored;
create function income(Person) -> Real as stored;
create Person(name, income) instances
("Venus",350),
("Serena",390)
The attributes can be any
updatable OSQL function having the
created type as its only argument, here name()
and income()
. For
each new object a comma-separated list of initial values for the
specified attributes functions can be specified as in the example.
Each initializer can have an optional variable name, which will be bound to the new object. The variable name can subsequently be used as a reference to the object.
Example:
create Person(name, income) instances
:pelle ("Per",383);
income(:pelle)
Expressions can be used when specifying initial values, for example:
create Person (name,income) instances
:kalle ("Kalle "+"Persson" , 200*1.5);
name(:kalle);
income(:kalle)
The types of the initial values must match the declared result types of the corresponding functions.
It is possible to specify null
for a value when no initialization is
desired for the corresponding function. Bag valued functions are
initialized using the syntax bag(e1,...)
.
In Section Updates more ways of changing the contents of the database are described.
Deleting objects​
Objects are deleted from the database with the delete
statement.
Example:
delete :pelle
The system will automatically remove the deleted object from all stored functions where it is referenced. Deleted objects are printed as:
#[OID nnn *DELETED*]