Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Несколько вопросов об ... (http://forum.oszone.net/showthread.php?t=30240)

Sharkky 06-10-2003 10:53 207896

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

Megabyte 07-10-2003 08:08 207897

1.
Код:


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

2. Будет.
3. Не в курсе, Oracle точно будет, а с MySQL я так не делал.

Sean Ingumsky 08-10-2003 01:37 207898

Megabyte:up::up:
Sharkky
Цитата:

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

Megabyte 08-10-2003 08:19 207899

Пример для Оракла:
Например, есть таблица клиентов
Код:

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 08-10-2003 13:01 207900

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


Время: 12:23.

Время: 12:23.
© OSzone.net 2001-