[outsystems学习]DB参考1

1,自动连番Auto Numbers

     ※想定DB:Oracle  ,SQL Server除外

     1)Outsystems系统会在一个名叫[OSADMIN.OSSYS_ENTITY]的

系统内部表里,根据Studio里命名的内部DB表名自动起一个物理名

        例:  内部DB表名:MYLISTENTITY

               物理DB表名:OSUSR_xxx_MYLISTENTITY

                   ※xxx:根据·eSpace不同单一的3字母

                   ※MYLISTENTITY:内部DB表名的全部或者一部分

    2)顺序 sequence

        前缀:OSSEQ

       例:CREATE SEQUENCE  "OSADMIN"."OSSEQ_OSUSR_2NU_MYLISTENTITY"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 101 CAC

   3)触发器?  trigger

       前缀:OSTRG

       例:CREATE OR REPLACE EDITIONABLE TRIGGER "OSADMIN"."OSTRG_OSUSR_2NU_MYLISTENTITY" BEFORE INSERT ON "OSUSR_2NU_MYLISTENTITY" FOR EACH ROW BEGIN IF :NEW."ID" IS NULL THEN SELECT oshe_globals.setidentity("OSSEQ_OSUSR_2NU_MYLISTENTITY".nextval) INTO :NEW."ID" FROM dual; END IF; END;

2,DB兼容性问题  Compatibility Issues

   1)Dual Table·的使用

           

   2)getdate() Function的使用

        SELECT getdate() FROM Dual

   3)半角空字符

       SELECT .* FROM WHERE .Username = '<single space>'

    4)LOB型检索不区分大小写

    5)文字数超过2000的等值条件,不用=,用Like

3,DB制约

      Oracle 主KEY  CONSTRAINT OSPRK_<internal name> PRIMARY KEY (<attribute>)

                 外KEY  OSFRK 

4,DB索引

      Outsytems不推奖直接对数据库追加索引。

     可在Service Studio里追加,生成的物理前缀名是 OSIDX

      

5,事务处理 Handling transactions

     ・CommitTransaction

     ・AbortTransaction

  隔离级别 Isolation levels

 

 Oracle:查询,插入,更新在同一个事务处理内进行,只有提交时才会更新DB。

6,数据模型变更的处理方法※很重要

     变更不是立即反应,是在程序部署deploy时发生,并且以确保不会丢失数据的方式完成。

     ※如果在Service Studio里,对一个有数据的表用剪贴的方式生成一个新表,新表为空。

    1)实体Entity或属性Attribute的删除

         Outsystems只是把程序模型application model里的属性删掉,DB里还保留着,所以会有列多的警告信息出来。

    2)实体Entity或属性Attribute的追加

         没有重名的话会追加上,但过去曾经用过的话,Outsystems会做数据变换再利用处理

              成功的话,部署deploy正常完了,反之报错公开失败。

   3)实体Entity或属性Attribute的变更

         改实体Entity名时,Outsystems只是改了DB的关联association名,物理名没变。

             数据表的数据仍在。

        改属性Attribute名时,Outsystems建立一个新名字的列名,旧列和数据仍在DB里,但在开发   环境里不再有效。

         如果DB里已有同名的话,Outsystems尝试做映射map处理

 4)属性Attribute的数据类型变更

        如果已有数据,Outsystems尝试做变换处理,不能变换或则会丢数据的话,会报DB升版错误

 5)Text属性Attribute的长度变更

       Outsystems有两种类型保存文字列:

      2000 文字以下(VARCHAR2(<length>),)可以往2000文字以上(CLOB)变更,

      反之部署deploy时报错因为会丢数据。

6)DB error处理参考Link:

    Database Integrity Suggestion Warning - OutSystems 11 Documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值