Несколько вопросов об ...

Ответить
Аватара пользователя
Sharkky

Несколько вопросов об ...

Сообщение Sharkky »

1. Если в mySQL уже создана таблица как я могу назначить одно из её полей ключевым?

2. Будет ли mySQL отслеживать при этом уникальность ключа?

3. Можно ли создавать связи между полями таблиц, и может ли, при этом, mySQL обеспечивать целостность данных? (На подобие того как это происходит в Access)
Аватара пользователя
Sharkky

Re: Несколько вопросов об ...

Сообщение Sharkky »

1.

Код:

Код: Выделить всё

 
ALTER TABLE `table_name` ADD PRIMARY KEY ( `field_name` )

2. Будет.

3. Не в курсе, Oracle точно будет, а с MySQL я так не делал.
Аватара пользователя
Sean Ingumsky

Re: Несколько вопросов об ...

Сообщение Sean Ingumsky »

MegabyteИзображениеИзображение

Sharkky


Цитата:



3. Можно ли создавать связи между полями таблиц, и может ли, при этом, mySQL обеспечивать целостность данных? (На подобие того как это происходит в Access)



Что имеется в виду? Разъясните, пожалуйста.
Аватара пользователя
Megabyte

Re: Несколько вопросов об ...

Сообщение Megabyte »

Пример для Оракла:

Например, есть таблица клиентов



Код:

Код: Выделить всё

customers (
  customer_id Number,
  customer_name Varchar2(500),
  ...
)

и таблица заказов



Код:

Код: Выделить всё

orders (
  order_id Number,
  order_customer_id Number,
  constraint orders_fk FOREIGN KEY (order_customer_id) References customers(customer_id),
 ...
)

Директива constraint указывает Ораклу, что поле order_customer_id в таблице orders - ссылка на customer_id в таблице customers. Тогда Оракл сам будет следить, чтобы у всех записей в таблице orders значение в поле order_customer_id совпадало с одним из значений из customer_id.  То есть при любом изменении order_customer_id Оракл проверит, есть ли такое значение в customer_id, если нет - не даст изменить (или вставить). Также он не даст удалить сроки их таблицы customers, если его customer_id есть в одном из order_customer_id.
Аватара пользователя
Sean Ingumsky

Re: Несколько вопросов об ...

Сообщение Sean Ingumsky »

Megabyte

Да, подобное есть и в MySQL...

Sharkky

Есть один хорошоий способ всё узнать - посмотреть документацию ;-)) Там можно гораздо быстрее найти полные ответы на все интересующие вопросы. Документация в Сети есть, например, здесь:
www.mysql.com/documentation
.
Ответить

Вернуться в «Программирование и базы данных»