Почему ограничения БД не добавляются при создании таблицы - PullRequest
1 голос
/ 19 марта 2010

В чем разница между этими способами создания таблиц.

CREATE TABLE TABLENAME(
field1....
field2...

add constraint constraint1;
add constraint constraint2;
)

И

CREATE TABLE TABLENAME(
    field1....
    field2...
    )

ALTER TABLE TABLENAME add constaint1
ALTER TABLE TABLENAME add constaint2

Более того, первые скрипты не работают на SQL +, но они передаются на sqldeveloper Спасибо! Pratik

1 Ответ

4 голосов
/ 19 марта 2010

Разница, по-видимому, в том, что первый метод представляет собой один оператор, тогда как второй использует три различных оператора. ЕСЛИ операторы выполнены успешно, общий результат будет таким же.

Вы можете проверить ваш синтакс, хотя (особенно использование ";"):

SQL> CREATE TABLE table1 (
  2     field1 NUMBER,
  3     field2 NUMBER,
  4     CONSTRAINT pk_table1 PRIMARY KEY (field1),
  5     CONSTRAINT chk_table1 CHECK (field2 > 0)
  6  );     
Table created

SQL> CREATE TABLE table2 (
  2     field1 NUMBER,
  3     field2 NUMBER);     
Table created

SQL> ALTER TABLE table2 ADD CONSTRAINT pk_table2 PRIMARY KEY (field1);     
Table altered

SQL> ALTER TABLE table2 ADD CONSTRAINT chk_table2 CHECK (field2 > 0);     
Table altered
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...