首页 > 解决方案 > 如何在 SQL DEVELOPER 中设置表中主键的自动增量?

问题描述

我一直在尝试像在 MySQL 中那样将“w_no”设置为 auto_increment,但它一直在出错。

我们如何在sql developer中设置自动增量?我们可以通过代码执行还是必须执行其他操作?

这是代码

CREATE TABLE ward (
      w_no      INT PRIMARY KEY AUTO_INCREMENT,
      wname     VARCHAR(30),
      w_loc     VARCHAR(30),
      phone_no  NUMERIC(10, 0),
      sno       INT
);

/*alter table ward ;*/  /*Can we do auto_increment using alter table here*/

标签: sqloracleoracle11g

解决方案


不要使用 VARCHAR,使用 VARCHAR2

此外,如果您需要帮助,请尝试 CREATE TABLE 对话框。

我们将为您创建表、PK、序列和触发器。

或者,如果您使用的是 12c 或更高版本的数据库,则可以使用 IDENTITY 子句。

在此处输入图像描述

然后单击向导的 DDL 页面,我们将向您展示代码,因此您不必猜测对话框在做什么。

CREATE TABLE TABLE1 
(
  COLUMN1 INTEGER NOT NULL 
, COLUMN2 VARCHAR2(20) 
, COLUMN3 VARCHAR2(20) 
, CONSTRAINT TABLE1_PK PRIMARY KEY 
  (
    COLUMN1 
  )
  ENABLE 
);

CREATE SEQUENCE TABLE1_SEQ;

CREATE TRIGGER TABLE1_TRG 
BEFORE INSERT ON TABLE1 
FOR EACH ROW 
BEGIN
  <<COLUMN_SEQUENCES>>
  BEGIN
    IF INSERTING AND :NEW.COLUMN1 IS NULL THEN
      SELECT TABLE1_SEQ.NEXTVAL INTO :NEW.COLUMN1 FROM SYS.DUAL;
    END IF;
  END COLUMN_SEQUENCES;
END;
/

推荐阅读