我对表A建了一个触发器(before insert),来生成主键。
表A结构如下:
CREATE TABLE A

 COL1 VARCHAR2(10) NOT NULL PRIMARY,
 COL2 VARCHAR2(10) NOT NULL,
 COL3 VARCHAR2(10) NOT NULL
)
;
我用数据库自己在表中插入数据insert into A (col2,col3) values ('AS','AS'),会自动生成主键col1。
现在我用DELPHI建应用程序操作数据表A,在插入数据col2,col3,没有生成col1主键后,进行post,出现错误,提示主键不能为空。问题:
我在数据库用命令insert调试过,不用输入主键的值,直接插入他会调用函数的啊,说明触发器正常。当在delphi中的应用程序中实现数据库操作的时候,插入数据就一定要包含主键,不然出现提示主键不能为空。当我添加主键进行插入(主键任意,不是我要求的格式,只要不为空),就不会提示错误,触发器正常运行,生成要求格式的主键。但是就出现一个问题:数据库中的数据和当前客户端的数据不一致(数据库主键是要求格式,客户端则是自己任意输入的主键)。还有一个附加的问题就是在客户端还是要求输入主键,没有达到我预期的主键客户端自动生成的目的。
现在需要解决的是怎样做才能做到客户端不用输入主键,真正实现数据库生成主键的操作呢?还是这个根本实现不了的?