sql - 如何在 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*/
解决方案
不要使用 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;
/
推荐阅读
- azure - 将 Azure Application Insights 与 Azure API 管理实例集成时面临的问题
- android - SSL握手中止:ssl = 0x55ad47e080:系统调用期间的I / O错误,对等方重置连接
- javascript - 如何通过 jquery ajax 将两个或多个“输入类型文件”字段上传到数据库中?
- c - 如何在 FFmpeg 中模拟 OpenFile?
- php - Codeigniter 3 博客应用程序:每当删除一个类别时,将该类别中所有帖子的 cat_id 设置为 1
- jquery - 如何在c3图表中使用嵌套的json值| jQuery
- react-native-android - 制作项目时如何修复“复制模板”中的错误?
- r - 基于条件的分布抽样
- r - 如何在 R 的 for 循环中仅跳过特定类型的错误?
- angular - Angular 8 应用程序调用 Springboot 应用程序返回空