[ABI 云体验] 524 回填数据问题

20378
15

chenz 数据达人Lv4

发表于2020-12-31 17:17

悬赏100

已解决

楼主
后台表T有四个字段,分别是:ID VARCHAR2 DEFAULT SYS_GUID() NOT NULL,A VARCHAR2 NOT NULL,
B VARCHAR2 NOT NULL,
C DATE DEFAULT SYSDATE NOT NULL;
手动INSERT T(A,B),ID 和C可以自动获取到默认值,但是ABI中只回填A,B两个字段会报错:ID不允许为空。
我们猜想可能是应用程序在拼SQL的时候默认把ID 赋值NULL,C 也赋值了NULL,烦请老师指点。

最近看过此主题的会员

esen_5HQRF7WNEI

alimu

esen_4WEAZSTVEF

一一

fenqiu

13407717840

abcddcba

shqx

徐实力

最佳答案
关贴总结:
在回填的时候,直接写回填值;之前想实现前台不用回填默认值的字段,只回填需要填写的说明。
感谢楼主分享
15个回答

只看楼主

杨思怡 初学数据Lv2

发表于2020-12-31 17:20

只看该作者

取消 关注该作者的回复

沙发

报表的结果页插入数据时会指定主键,建表时同理,检查一下主键字段是否在insert的内容中

chenz 数据达人Lv4

发表于2020-12-31 17:25

只看该作者

取消 关注该作者的回复

板凳

杨思怡 发表于 2020-12-31 17:20
报表的结果页插入数据时会指定主键,建表时同理,检查一下主键字段是否在insert的内容中 ...

ID就是主键,后台表设置了默认值的,不需要再insert数据。
你的意思是不是后台表ID为主键,应用拼接sql的时候就必须要insert ID值?

杨思怡 初学数据Lv2

发表于2020-12-31 17:27

只看该作者

取消 关注该作者的回复

地板

chenz 发表于 2020-12-31 17:25
ID就是主键,后台表设置了默认值的,不需要再insert数据。
你的意思是不是后台表ID为主键,应用拼接sql的 ...

嗯嗯,是这个意思

杨思怡 初学数据Lv2

发表于2020-12-31 17:27

只看该作者

取消 关注该作者的回复

5#

chenz 发表于 2020-12-31 17:25
ID就是主键,后台表设置了默认值的,不需要再insert数据。
你的意思是不是后台表ID为主键,应用拼接sql的 ...

id默认值是设置过自增吗

chenz 数据达人Lv4

发表于2020-12-31 17:29

只看该作者

取消 关注该作者的回复

6#

杨思怡 发表于 2020-12-31 17:27
id默认值是设置过自增吗

应用拼接sql不指定ID值,数据库自动赋值

杨思怡 初学数据Lv2

发表于2020-12-31 17:31

只看该作者

取消 关注该作者的回复

7#

chenz 发表于 2020-12-31 17:29
应用拼接sql不指定ID值,数据库自动赋值

如果是后台插入的话可以不指定id,但是如果是从报表内回填的话是需要指定一下的

chenz 数据达人Lv4

发表于2020-12-31 17:35

只看该作者

取消 关注该作者的回复

8#

杨思怡 发表于 2020-12-31 17:31
如果是后台插入的话可以不指定id,但是如果是从报表内回填的话是需要指定一下的 ...

报表回填的时候可不可以把ID默认为SYS_GUID(),或者说ABI有类似的生成唯一标识的函数

杨思怡 初学数据Lv2

发表于2020-12-31 17:37

只看该作者

取消 关注该作者的回复

9#

chenz 发表于 2020-12-31 17:35
报表回填的时候可不可以把ID默认为SYS_GUID(),或者说ABI有类似的生成唯一标识的函数 ...

可以,可以在表元的表达式内写函数自定义生成

杨思怡 初学数据Lv2

发表于2020-12-31 17:38

只看该作者

取消 关注该作者的回复

10#

chenz 发表于 2020-12-31 17:35
报表回填的时候可不可以把ID默认为SYS_GUID(),或者说ABI有类似的生成唯一标识的函数 ...

就是需要前台生成自动生成主键id是吗?

chenz 数据达人Lv4

发表于2020-12-31 17:44

只看该作者

取消 关注该作者的回复

11#

杨思怡 发表于 2020-12-31 17:38
就是需要前台生成自动生成主键id是吗?

数据库是Oracle,ID不需要区分先后,也不用比较大小,只是判断唯一,所以不需要自增,只需要随机数,所以用的是oracle的sys_guid()。理论上讲应用不应该强制去写主键字段,如果主键字段后台没有设置好自己会抛出错误,用户可以自愿选择是否写入主键值,也可以选择主键值是通过后台还是前台写入,强制从前台写入主键值感觉不是很灵活。当然,如果应用强制要写入主键值,那当前场景就是要前台应用写入随机的ID值。

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号