如何使用SQL Developer设置自动递增列

26 浏览
0 Comments

如何使用SQL Developer设置自动递增列

如何在Oracle SQL Developer中设置一个列自动递增?为什么表单被禁用?

注意:图片显示的是数据模型设计工具,但问题和最佳答案讨论的是编辑现有数据库。

0
0 Comments

在Oracle数据库中,不像MySQL一样,不支持自动递增的功能。但是你可以通过一些额外的努力来实现这个功能。

首先,创建一个序列(sequence):

CREATE SEQUENCE S_MYTABLE
START WITH 1
INCREMENT BY 1
CACHE 10;

然后,创建一个触发器(trigger):

CREATE OR REPLACE TRIGGER T_MYTABLE_ID
BEFORE INSERT
ON MYTABLE
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
  if(:new.ID is null) then
  SELECT S_MYTABLE.nextval
  INTO :new.ID
  FROM dual;
  end if;
END;
/
ALTER TRIGGER "T_MYTABLE_ID" ENABLE;

这样,每次向表中插入一条新记录时,触发器会自动将ID列的值设置为序列的下一个值。

从2012年开始,情况有所改变。随着Oracle数据库12c的推出,现在你可以更简单地实现自动递增的功能。具体操作请参考这篇文章:thatjeffsmith.com/archive/2014/01/…

通过创建序列和触发器,你可以在Oracle数据库中实现类似自动递增的功能。这种方法在以前是常用的,但现在也可以通过更简单的方式实现。

0
0 Comments

在SQL Modeler中可以设置自增列。在列属性窗口中点击"General",然后勾选"Auto Increment"选框。之后,自增窗口将会被启用。

谢谢您的帖子!请不要在您的帖子中使用签名/标语。您的用户框已经算作您的签名,您可以使用个人资料来发布任何关于您自己的信息。有关签名/标语的FAQ。

0
0 Comments

在使用Oracle SQL Developer时,如果想要将主键设置为自动递增,需要设置ID列的属性。

  1. 右键点击表格,选择“Edit”。
  2. 在“Edit”窗口中,选择“columns”,然后选择您的主键列。
  3. 转到ID Column选项卡,选择Column Sequence作为类型。这将创建一个触发器和一个序列,并将序列与主键相关联。

查看下面的图片以更好地理解。

enter image description here

//我的来源是:http://techatplay.wordpress.com/2013/11/22/oracle-sql-developer-create-auto-incrementing-primary-key/

非常好的回答。然而,我想补充一点,重要的是要注意“在插入之前检查列是否为空”的复选框,这可能不是您想要的。当使用序列ID时,通常不希望它从其他地方填充(可能会有例外情况,但请确保考虑一下)。

非常好的回答。对我来说完美运行。

非常好的回答。谢谢。我也给你点赞了 🙂

0