SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.09.2009 19:44:10

kiosuki
Участник
Зарегистрирован: 12.02.2008
Сообщений: 5

Как узнать внешние ключи для родительской?

Как можно узнать все внешние ключи для родительской таблицы? Существует ли какой-то оператор?

create table order (
order_id int unsigned not null primary key,
order_time datetime
);

create table item (
item_id int unsigned not null primary key,
item_name varchar(30),
order_id int unsigned not null,
CONSTRAINT order_id FOREIGN KEY (order_id) REFERENCES order (order_id) ON DELETE CASCADE ON UPDATE CASCADE
);

Как можно узнать, какие таблицы ссылаются на order, не опрашивая каждую таблицу по отдельности?

Неактивен

 

#2 08.09.2009 20:08:37

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как узнать внешние ключи для родительской?

SELECT table_name FROM informatuion_schema.REFERENTIAL_CONSTRAINTS where referenced_table_name='order';

Неактивен

 

#3 08.09.2009 20:16:54

kiosuki
Участник
Зарегистрирован: 12.02.2008
Сообщений: 5

Re: Как узнать внешние ключи для родительской?

Всегда ли доступна informatuion_schema для любого пользователя? И, кстати, там таблицы REFERENTIAL_CONSTRAINTS я не нашел sad  Версия MySQL-клиента: mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $ (взял из phpMyAdmin)

+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| CHARACTER_SETS                        |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS                               |
| COLUMN_PRIVILEGES                     |
| KEY_COLUMN_USAGE                      |
| ROUTINES                              |
| SCHEMATA                              |
| SCHEMA_PRIVILEGES                     |
| STATISTICS                            |
| TABLES                                |
| TABLE_CONSTRAINTS                     |
| TABLE_PRIVILEGES                      |
| TRIGGERS                              |
| VIEWS                                 |
| USER_PRIVILEGES                       |
+---------------------------------------+

Отредактированно kiosuki (08.09.2009 20:19:50)

Неактивен

 

#4 08.09.2009 20:23:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как узнать внешние ключи для родительской?

kiosuki написал:

Всегда ли доступна informatuion_schema для любого пользователя?

Это зависит от того на какие базы вы даете права любому пользователю.

kiosuki написал:

И, кстати, там таблицы REFERENTIAL_CONSTRAINTS я не нашел sad  Версия MySQL-клиента: mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $ (взял из phpMyAdmin)

Обновите до версии 5.1

Неактивен

 

#5 08.09.2009 20:51:27

kiosuki
Участник
Зарегистрирован: 12.02.2008
Сообщений: 5

Re: Как узнать внешние ключи для родительской?

vasya написал:

kiosuki написал:

Всегда ли доступна informatuion_schema для любого пользователя?

Это зависит от того на какие базы вы даете права любому пользователю.

А как с этим вопросом обстоят дела у хостеров обычно?

Неактивен

 

#6 08.09.2009 21:02:11

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как узнать внешние ключи для родительской?

Не знаю. Но по идее отрицательно, там ведь хранится инфа по всем базам.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson