我想使AUTO_PROJECT_ID自动执行,因此每次在表中输入新记录时,都会给出一个自动ID。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Table PUBLIC "-//EAME/TABLE MAINTENANCE - TABLE" "Table.dtd">
<Table Name="STRAT_STRATEGY_PROJECTS"
Confidentiality="Non-confidential"
Connection="DXP3"
Owner="USERINPUT"
DisplayRows="30" >
<DownloadableFormat name="Excel"/>
<Column Name="AUTO_PROJECT_ID"
Label="Internal Project ID"
Required="True"
ReadOnly="True"
Key="True" />
答案 0 :(得分:0)
如果是Oracle数据库(如标记所建议),则应在表上创建一个序列和一个触发器以插入序列值(如果仅在未为ID指定其他值的情况下使用序列值,则请使用触发器内的注释行):
CREATE SEQUENCE your_sequence
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 20;
CREATE OR REPLACE TRIGGER your_trigger
BEFORE INSERT
ON your_table
FOR EACH ROW
BEGIN
-- :NEW.id := NVL (:new.id, your_sequence.NEXTVAL);
:NEW.id := your_sequence.NEXTVAL;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
答案 1 :(得分:0)
我不确定您的XML需要在其中扮演什么角色,但是从数据库方面,您可以像这样创建表:
create table strategy_projects
( auto_project_id integer generated always as identity constraint strpr_pk primary key
, project_name varchar2(10) );
(需要Oracle 12.1或更高版本-对于较旧的版本,可以在表中执行插入操作的任何位置使用触发器或显式使用序列。)