如何使用Oracle SQL创建具有多个索引的表?

mi7gmzs6  于 2022-11-28  发布在  Oracle
关注(0)|答案(1)|浏览(304)

我想使用(Oracle)SQL创建一个新表,该表包含多个列的索引,索引在创建列的同时创建(在一条语句中)。在这里(https://www.oracletutorial.com/oracle-index/oracle-create-index/),我找到了创建表的语句:

CREATE TABLE members(
    member_id INT GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(100) NOT NULL,
    last_name VARCHAR2(100) NOT NULL,
    gender CHAR(1) NOT NULL,
    dob DATE NOT NULL,
    email VARCHAR2(255) NOT NULL,
    PRIMARY KEY(member_id)
);

second 语句中,为last_name创建了一个索引:

CREATE INDEX members_last_name_i 
ON members(last_name);

我想知道如何修改create table语句,例如为列“last_name”和“dob”创建索引。

CREATE TABLE members(
    member_id INT GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(100) NOT NULL,
    last_name VARCHAR2(100) NOT NULL,
    gender CHAR(1) NOT NULL,
    dob DATE NOT NULL,
    email VARCHAR2(255) NOT NULL,
    PRIMARY KEY(member_id),
    INDEX members_last_name_i (last_name),
    INDEX date_i (dob)
);
gcmastyq

gcmastyq1#

不久,你可以不。
CREATE INDEX是一个单独的语句,只有PRIMARY KEY约束 * 在后台 * 创建支持它的(唯一)索引(如果这样的索引还不存在;如果它存在,您可以重用它),但是对于其余部分,您必须在以后一个接一个地创建它们。

相关问题