gpt4 book ai didi

database - 为oracle数据库列创建表时如何使用默认主键作为序列值

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:26 25 4
gpt4 key购买 nike

我们有一个工具,这个工具创建一些插入脚本来在我们的 plsql 表中添加行。这个脚本是不可修改的,我们看不到这个脚本。所以,

当数据行到来时(使用我们不知道结构的插入脚本),我们应该给出一个主键。我们可以使用触发器,但出于性能原因我们不想这样做。

下面的代码不起作用。

CREATE TABLE qname
(
qname_id integer NOT NULL default qname_id_seq.nextval PRIMARY KEY,
);

有什么想法吗?谢谢..

最佳答案

.nextval 不能用于表的默认值,这是通过 TriggerSequence 实现的,当你想要任何人都可以轻松阅读/记住/理解的序列号时。但是如果你不想通过这种方式管理 ID 列(如 qname_id),并且该列的值不是很大,你可以在创建表时使用 SYS_GUID() 来获得自动增量,如这个。

CREATE TABLE qname 
(qname_id RAW(16) DEFAULT SYS_GUID() PRIMARY KEY,
name VARCHAR2(30));

(或通过修改列)

现在您的 qname_id 列将接受“全局唯一标识符值”。您可以像这样忽略 emp_id 列来在表中插入值。

INSERT INTO qname (name) VALUES ('name value');

因此,它将向您的 qname_id 列插入唯一值。

关于database - 为oracle数据库列创建表时如何使用默认主键作为序列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21282838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com