Open Edge Progress数据库新手求教:数据更新/插入语句是否正确?
Open Edge Progress 数据更新/插入语句说明
你写的单独ASSIGN语句是不正确的,因为它缺少定位目标记录(更新场景)或创建新记录(插入场景)的上下文,无法直接执行。下面分别说明正确的更新和插入写法:
更新数据
要更新表中已有记录,需要先通过FIND或FOR EACH语句定位到目标记录(注意添加合适的锁,更新操作需要独占锁或共享锁),再用ASSIGN修改字段值:
方式1:用FIND定位单条记录
FIND 表名 WHERE 表名.主键字段 = 目标值 EXCLUSIVE-LOCK. ASSIGN 表名.字段1 = 新值1 表名.字段2 = 新值2.
方式2:用FOR EACH批量更新
FOR EACH 表名 WHERE 表名.条件字段 = 筛选条件 EXCLUSIVE-LOCK: ASSIGN 表名.字段 = 新值. END.
插入数据
插入新记录需要先使用CREATE语句创建空记录,再用ASSIGN给字段赋值,也可以合并为一行写法:
方式1:分开写
CREATE 表名. ASSIGN 表名.主键字段 = 主键值 表名.字段1 = 数据1 表名.字段2 = 数据2.
方式2:合并写法
CREATE 表名 ASSIGN 表名.主键字段 = 主键值 表名.字段1 = 数据1 表名.字段2 = 数据2.
内容的提问来源于stack exchange,提问作者Naruhina
相关产品推荐
相关产品推荐

