这很简单,可能已经被问到了,但是我找不到它(如果是这样的话我很抱歉).
我想在表上插入一个空行,以便我可以通过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值外的空记录.