Создание таблицы в Access с помощью DDL
От: Kapone Украина  
Дата: 14.02.06 15:57
Оценка:
Привет всем коллегам !
Возник такой вопрос. Создал .mdb файл и пытаюсь выполнить такой запрос :


CREATE TABLE Заказы
(
  КодЗаказа INTEGER PRIMARY KEY, 
  ИндексКлиента INTEGER, 
  ПримечанияЗаказа TEXT, 
  CONSTRAINT ВнКлЗаказыИндексКлиента FOREIGN KEY (ИндексКлиента) REFERENCES Клиенты ON UPDATE CASCADE ON DELETE CASCADE 
);


В выделенном месте Access матерится и ругается(Syntax error in CONSTRAINT clause).Таблица "Клиенты" уже создана.
Пример переписан из справки по MS Access.
Так вот сижу я и думаю : или я где-то чего-то упустил, или сам движок БД таких конструкций не должен понимать?
Версия: MS Access 2003(build 11.5614.5606)

Заранее благодарю за любые предложения.
Re: Создание таблицы в Access с помощью DDL
От: ABK Украина  
Дата: 14.02.06 16:04
Оценка:
Здравствуйте, Kapone, Вы писали:

K>Привет всем коллегам !

K>Возник такой вопрос. Создал .mdb файл и пытаюсь выполнить такой запрос :


K>
K>CREATE TABLE Заказы
K>(
K>  КодЗаказа INTEGER PRIMARY KEY, 
K>  ИндексКлиента INTEGER, 
K>  ПримечанияЗаказа TEXT, 
K>  CONSTRAINT ВнКлЗаказыИндексКлиента FOREIGN KEY (ИндексКлиента) REFERENCES Клиенты ON UPDATE CASCADE ON DELETE CASCADE
K>);

K>


K>В выделенном месте Access матерится и ругается(Syntax error in CONSTRAINT clause).Таблица "Клиенты" уже создана.

K>Пример переписан из справки по MS Access.
K>Так вот сижу я и думаю : или я где-то чего-то упустил, или сам движок БД таких конструкций не должен понимать?
K>Версия: MS Access 2003(build 11.5614.5606)

K>Заранее благодарю за любые предложения.


CREATE TABLE Заказы
(
  КодЗаказа INTEGER PRIMARY KEY, 
  ИндексКлиента INTEGER, 
  ПримечанияЗаказа TEXT, 
  CONSTRAINT ВнКлЗаказыИндексКлиента FOREIGN KEY (ИндексКлиента_fkey) REFERENCES Клиенты (ИндексКлиентаВТаблицеКлиены) ON UPDATE CASCADE ON DELETE CASCADE 
)
Re[2]: Создание таблицы в Access с помощью DDL
От: ABK Украина  
Дата: 14.02.06 16:10
Оценка:
Здравствуйте, ABK, Вы писали:

Извиняюсь за ...., вот так, вроде, правильно:

ABK>
ABK>CREATE TABLE Заказы
ABK>(
ABK>  КодЗаказа INTEGER PRIMARY KEY, 
ABK>  ИндексКлиента INTEGER, 
ABK>  ПримечанияЗаказа TEXT, 
ABK>  CONSTRAINT ВнКлЗаказыИндексКлиента FOREIGN KEY (ИндексКлиента) REFERENCES Клиенты (ИндексКлиентаВТаблицеКлиены) ON UPDATE CASCADE ON DELETE CASCADE 
ABK>)
Re[3]: Создание таблицы в Access с помощью DDL
От: Аноним  
Дата: 15.02.06 08:14
Оценка:
Спасибо за совет, но вопрос уже разрешился.
Просто я пытался выполнить DDL запрос во встроенном редакторе запросов Accessa.
Потом я посидел и подумал,а что если он ориентирован на выполнение обычных комманд, а не DDL ??
После этого вспомнил про утилитку BatchAccess, скачал её и прекрасно выполнил мой первоначалный код.

Еще раз спасибо за отзывчивость.
P.S.:
При создании связи с другой таблицей совсем не обязательно указывать ИндексКлиентаВТаблицеКлиенты.
По умолчанию берётся ключевое поле.
просто считается хорошим тоном это поле указывать явно. Вот так.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.