При создании таблицы с GUID столбцом ошибка ORA-00907: missing right parenthesis

CREATE TABLE Passenger (
  2  id_passenger guid not null auto_increment,
  3  privilege varchar(40) not null,
  4  full_name_passenger varchar(200) not null,
  5  age int not null,
  6  sex varchar(40) not null
  7  );

ERROR at line 2:
ORA-00907: missing right parenthesis

Как исправить ошибку?


Ответы (1 шт):

Автор решения: 0xdb

GUID это не число, его нельзя увеличить или уменьшить. Хранить его можно в столбце с типом данных RAW (16) (см. описание функции SYS_GUID). Нелишне такой столбец объявить как первичный ключ.

Заодно, стоит ли для пола (sex) выделять 40 символов? Если конечно не предполагаются такие значения: 'замечательныймужикменявывезвгеленджик', то хватит и одного символа.

Итого получится:

create table Passenger (
    id_passenger raw (16) default sys_guid () primary key,
    privilege varchar2 (40) not null,
    full_name_passenger varchar2 (200) not null,
    age int not null,
    sex char (1) not null);

Table PASSENGER created.
→ Ссылка