示例
以下示例 DDL 规范说明了许多可用的数据类型和声明:
#define int1 signed<1>
#define int2 signed<2>
#define int4 signed<4>
#define uint4 unsigned<4>
#define uint2 unsigned<2>
#define uint1 unsigned<1>
struct SampleStruct {
uint2 s1;
char<20> s2;
};
struct BigStruct {
string str;
uint2 u2;
uint4 u4;
vector <SampleStruct> vss;
};
declare database simple;
/* 估计的类实例数量用方括号表示 */
declare OID SampleStruct[20000];
/* “compact”: 对象的总大小(包括开销)小于64K。 */
/* 大小计算不包括嵌入类中的 blob 字段的大小。 */
compact class SampleClass {
/* 基本数据类型 */
uint1 a = 0;
uint2 b;
uint4 c;
/* oid 引用 */
ref d;
/* vectors 可以是任何类型的 */
vector <uint2> numbers;
vector <SampleStruct> ss;
/* 字符串长度限制为 64K。 */
string str;
/* 数据块数量不限。 */
blob blo;
/* 可选结构,该值可能缺失 */
optional BigStruct big_struct;
/* voluntary 可以在运行时启动和删除
* unique 独一无二的
* tree 基于树的索引(支持排序顺序)
* hash 哈希索引
* list 可以对这些对象进行顺序扫描
*/
voluntary unique tree< a,b,ss.s2> SAM;
/* 估计的类实例数量用方括号表示 */
hash <a> AAAA[10000];
hash <ss.s2> SSS2[10000];
hash <numbers> NNNN[10000];
event <new> new;
event <delete> delete;
event <a update> update;
autoid;
oid;
list;
};
在目录 samples/native/core 中大多数 SDK 示例中的数据库定义文件 schema.mco 提供了更多有关 DDL 使用的示例。