sql - 如何在 SQL DEVELOPER 中设置表中主键的自动增量?

标签 sql oracle oracle11g

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

我们如何在 sql developer 中设置自动增量?我们可以通过代码来做还是必须做其他事情?

Here is the code

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*/

最佳答案

不要使用 VARCHAR,使用 VARCHAR2

此外,如果您需要帮助,请尝试创建表对话框。

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

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

enter image description here

然后单击向导的 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;
/

关于sql - 如何在 SQL DEVELOPER 中设置表中主键的自动增量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61211205/

相关文章:

sql - 用排序重构 Ruby on Rails link_to

oracle11g - 从 11g 数据库导出时出现 Oracle 12c 数据泵错误

php - 在 UNION 中选择列

sql - SQL Server 2005 及以上版本中使用动态列的交叉表查询

mysql - 在mysql数据库中随机获取特定实体的记录

ruby-on-rails - Rails + Oracle + oracle_enchanced 适配器 : db:create asks for SYSTEM password?

Oracle APEX - 模态页面中 Shuttle 的值不可用

java - Oracle 通过 JPA 排序,数字在前

java - JRebel 远程服务器即服务

oracle - PL/SQL - 计算重叠时间段之间的不同天数