Отсутствует правая скобка после (или до) значения по умолчанию 0, Oracle

Я пытаюсь создать таблицу с оракулом SQL, два столбца таблицы должны иметь значение по умолчанию и не должны быть NULL.

Я получаю сообщение об ошибке, которое вы можете увидеть ниже, но я не могу его понять, потому что там нет скобок, которые нужно закрыть !!!!

CREATE TABLE ENCUENTROS (
  2  elocal constraint clave_extrana_equipos references equipos(code) not null enable,
  3  evisitante constraint clave_extrana_equipos references equipos(code) not null enable,
  4  fecha date,
  5  plocal number constraint plocal_mayor_cero check (plocal > 0) default 0 not null enable,
  6  pvisitante number constraint pvisitante_mayor_cero check (pvisitante > 0) default 0 not null enable);
plocal number constraint plocal_mayor_cero check (plocal > 0) default 0 not null enable,
                                                              *
ERROR at line 5:
ORA-00907: missing right parenthesis

Ошибка решена:

Отсутствует правая скобка после (или до) значения по умолчанию 0, Oracle

Не знаю, является ли это ошибкой, но ваше контрольное ограничение local> 0 противоречит вашему значению по умолчанию 0.

DirkNM 21.05.2019 11:14

Быстрый взгляд на онлайн-документация Oracle (ссылка) показывает, что предложение inline constraint идет в конце определения столбца после объявлений default и not null.

APC 21.05.2019 11:35
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
2
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Этот код работал для меня:

create table encuentros (
  elocal number not null 
    constraint clave_extrana_equipos_1 references equipos(code) enable,
  evisitante number not null 
    constraint clave_extrana_equipos_2 references equipos(code) enable,
  fecha date,
  plocal number default 0 not null 
    constraint plocal_mayor_cero check (plocal >= 0)  enable,
  pvisitante number default 0 not null 
    constraint pvisitante_mayor_cero check (pvisitante >= 0) enable);

Было несколько вопросов:

  • имя clave_extrana_equipos для ограничений использовалось дважды. Используйте два разных имени,
  • столбцы elocal и evisitante не имеют указанного типа,
  • напишите default 0 not null после спецификации типа, перед ограничением.

Редактировать:

Как заметил @APC, спецификация типа для первых двух столбцов здесь не нужна.

"столбцы elocal и evisitante не имеют указанного типа", Это допустимо, когда столбец имеет внешний ключ: столбец наследует тип данных указанного первичного ключа. На самом деле это не просто законно, это безопаснее.
APC 21.05.2019 11:30

@APC Мне удалось создать таблицу без указания типов столбцов. обновлены вопросы.

rainman 22.05.2019 00:21

Другие вопросы по теме