Oracle12c 解决了自增列的问题(oracle12c自增列)
Oracle12c 解决了自增列的问题
在过去的 Oracle 版本中,想要创建自增列是非常麻烦的。需要手动创建序列或触发器,然后将这些对象与表格进行关联。这样一来,即使创建一个简单的自增列,也会导致很多麻烦。Oracle 12c 引入了新的特性,使得创建自增列变得非常容易。
Oracle 12c 中的自增列是通过定义 IDENTITY 列来实现的。这些列可以自动为每个新行分配一个唯一的值,从而避免手动创建序列或触发器的麻烦。另外,IDENTITY 列还可以用来定义主键或外键约束。
下面是一个简单的例子,说明如何创建一个具有自增列的表格:
CREATE TABLE employees (
emp_id NUMBER GENERATED ALWAYS AS IDENTITY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
eml VARCHAR2(100),
CONSTRNT pk_emp_id PRIMARY KEY (emp_id)
);
在上面的例子中,我们创建了一个名为 employees 的表格,并为 emp_id 列定义了 IDENTITY 特性。我们还定义了一个主键约束,将 emp_id 列设置为主键。
当我们向表格中插入一些数据时,我们不需要显式地指定 emp_id 的值:
INSERT INTO employees (first_name, last_name, eml)
VALUES (‘Tom’, ‘Jones’, ‘tjones@eml.com’);
这将在表格的 emp_id 列中分配一个唯一的整数值。
要查看分配给每个新行的值,请使用相应的命令:
SELECT emp_id, first_name, last_name, eml FROM employees;
上面的命令会返回类似下面的结果:
EMP_ID FIRST_NAME LAST_NAME EML
1 Tom Jones tjones@eml.com
Oracle 12c 中的新特性使得创建自增列变得更加容易。只需定义 IDENTITY 列并将其用作主键或外键约束即可自动为每个新行分配一个唯一的值。这样一来,我们可以更轻松地管理数据库中的表格,并在不需要手动创建序列或触发器的情况下实现自增列。