我尝试按照 YouTube 上的几个教程在我的默认交互式网格页面上实现自动增量,但每个教程的教学方式都不同,没有一个解决我的问题, 新行已填充,但填充为“t1000”,我希望它以从 1 开始的数字开始交互式网格sql 命令表
我尝试使用触发器或 JavaScript 脚本自动递增
不存在“交互式网格上的自动增量”这样的东西。如果表上有交互式网格,您可以为表中的任何新行自动生成新的 pk。我想这就是你的意思。
这是一个完整的示例:
请注意,该表将主键列定义为标识列,这是生成主键列的首选方式。这将负责新值的自动生成
create table mytable (
id number generated by default on null as identity
constraint mytable_id_pk primary key,
item varchar2(100 char),
price number
);
-- load data
insert into mytable ( id, item, price ) values ( 1, 'table', 200 );
insert into mytable ( id, item, price ) values ( 2, 'chair', 150 );
insert into mytable ( id, item, price ) values ( 3, 'sofa', 300 );
commit;
alter table mytable
modify id generated always as identity restart start with 4;
将列 id 的“主键”和“仅查询”设置为“是”。将 id 的列类型设置为“仅显示”。
运行页面并单击“添加行”。新行的 id 列将为空。这是预期的。此时该行还不存在于表中,而仅存在于您的浏览器会话中。单击“保存”时,行将添加到表中,并且 id 列将填充值。
如果将该列设置为“文本字段”而不是“仅显示”,则您可以选择手动输入主键(不鼓励这样做,因为 id 列是标识列)。在这种情况下,当您单击“添加行”时,IG 将获得临时主键值 t1000。请注意,如果添加其他行,您将得到 t1001,t1002,...。 IG 模型使用它来在提交之前强制客户端数据的唯一性。只要该行未保存,就无法知道表中的主键值是什么。提交后,具有“txxxx”值的列将从表中获取生成的值。