我 一直 试图 设置 一 个 " w _ no " 自动 增量 , 就 像 我们 在 MySQL 中 做 的 那样 , 但 它 一直 在 给 错误 。
我们 如何 在 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*/
中 的 每 一 个
4条答案
按热度按时间rekjcdws1#
不要使用VARCHAR,使用VARCHAR2
此外,如果需要帮助,请尝试CREATE TABLE对话框。
我们将为您创建表、PK、序列和触发器。
或者,如果您使用的是12c或更高版本的数据库,则可以使用IDENTITY子句。
然后点击向导的DDL页面,我们会给你看代码,这样你就不用猜这个对话框在做什么了。
nszi6y052#
我认为Oracle直到12c才引入IDENTITY数据类型。在这种情况下,您应该使用SEQUENCE对象来代替IDENTITY类型的缺失。
vom3gejh3#
由于您的Oracle数据库版本为
11g
,因此您需要使用SEQUENCE对象来递增主键。有关CREATE SEQUENCE的信息,请参阅文档。您可以在插入数据时引用序列号。或者,您可以使用
sequence.NEXTVAL
创建TRIGGER来递增表中的值。从
12c
版本开始,Oracle引入了IDENTITY列,这些列可用作:另请注意,请避免使用
VARCHAR
,因为Oracle强烈建议使用VARCHAR2来存储可变长度的字符串。wqsoz72f4#
如果 你 遇到 这个 主题 , 我 想 对 以前 的 回复 做 一些 补充 。
您 不 需要 创建 一 个 额外 的
trigger
来 与 主键 关联 , 但 首先 应该 创建 序列 。中 的 每 一 个
之后 , 您 所 要 做 的 就是 在 创建 表 时 将 此 序列 赋 给 PK 字段 。
格式