我无权查看数据库,但我可以创建数据库对象(通过xml文件)。 xml文档说如果我将名为“identity”的属性设置为true,那么将创建一个序列。我是否可以编写返回序列名称的逻辑,以便在编写INSERT语句时可以使用nextVal?
罗伯特
这是documentation,找到“身份”这个词......
答案 0 :(得分:6)
如果你可以运行select语句,那么你可以尝试从user_sequences中选择*来获取序列的名称。否则,您是否可以发送您正在使用的此数据库创建实用程序的文档(如果它是公共的)。否则,回答这个问题将非常困难。
编辑:
在审阅文档之后,它说如果您创建了一个包含主键的表,它将创建一个包含以下规则的序列,直接从文档中引用:
主键必须包含一个columnref子元素,该子元素包含一个属性name,该属性引用要包含在主键中的列名。在SQL Server中,密钥被映射为具有自动递增值的标识字段。在Oracle上,将使用表名加_seq后缀自动创建序列。
因此,您的查询将是:
从all_sequences中选择*,其中sequence_name = upper(tablename ||'_SEQ');