这很简单,可能已经被问到了,但是我找不到它(如果是这样的话我很抱歉).

我想在表上插入一个空行,以便我可以通过ExecuteScalar获取其ID(主键,由插入触发器生成).稍后在我的代码中添加数据.

我的问题是:是否有一个特定的插入语法来创建一个空记录?或者我必须使用常规插入语法,例如“INSERT INTO table(列出所有列)值(每列为null)”?

谢谢你的回答.

更新:在Oracle中,INSERT上的ExecuteScalar仅返回0.最终答案是下面发布的内容的组合.首先,您需要声明一个参数,然后使用RETURNING进行提取.

INSERT INTO TABLENAME (ID) VALUES (DEFAULT) RETURNING ID INTO :parameterName

有关详细信息,请查看link.

解决方法

基本上,为了插入一行,其中所有列的值都是NULL,除了primary

键列的值可以执行一个简单的insert语句:

insert into your_table(PK_col_name)
  values(1);                          -- 1 for instance or null

before insert触发器,负责填充主键列

覆盖insert语句的values子句中的值,留下一个

除PK值外的空记录.

dawei

【声明】:北京站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。