Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Внешний ключ / 13 сообщений из 13, страница 1 из 1
24.06.2018, 17:50
    #39664851
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
Всем привет! Нужна помощь в создании внешнего ключа для соединения двух таблиц!

создал 2 таблицы

create table boys
(
boy varchar(30) default null
);

insert into boys
values
('дейви'),
('бобби'),
('бивер'),
('ричи');

и

create table toys
(
toy varchar(30) default null
);

insert into toys
values
('обруч'),
('самолет'),
('солдатики'),
('губная гармошка'),
('бейсбольные карточки');

потом понял, что не доделал и внес изменения, первичные ключи и поменял местами столбцы

alter table boys
add column boy_id int auto_increment primary key;

alter table boys
modify column boy varchar(30) after boy_id;

alter table toys
add column toy_id int not null auto_increment primary key;

alter table toys
modify column toy varchar(30) after toy_id;



Принял для себя , что boys это главная таблица а toys дочерняя , поэтому хочу добавить внешний ключ таблице toys.

Не могу понять как таблице toys сделать внешний ключ , чтобы эти таблицы были связаны. спасибо заранее.
...
Рейтинг: 0 / 0
24.06.2018, 17:54
    #39664852
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
dermama,

Покажите результат SHOW CREATE TABLE после всех ваших манипуляций.
И поясните какое поле с каким должно быть связано внешним ключем.
...
Рейтинг: 0 / 0
24.06.2018, 18:12
    #39664859
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
miksoftdermama,

Покажите результат SHOW CREATE TABLE после всех ваших манипуляций.
И поясните какое поле с каким должно быть связано внешним ключем.



немного не понял что вы имете ввиду, то есь я хочу чтобы boy_id было primary key, а toy_id было foreign key. Исходя из того, что у меня уже сделано.
...
Рейтинг: 0 / 0
24.06.2018, 18:46
    #39664868
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
Неужели было сложно текстом скопипастить?

dermamaхочу чтобы boy_id было primary key, а toy_id было foreign keyТехнически сделать это несложно:
Код: sql
1.
ALTER TABLE toys ADD FOREIGN KEY (toy_id) REFERENCES boys (boy_id)

Но смысла я в этом не вижу. Довольно редко бывает нужно, чтобы первичный ключ одной таблицы ссылался на первичный ключ другой таблицы.
...
Рейтинг: 0 / 0
24.06.2018, 19:04
    #39664871
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
miksoftНеужели было сложно текстом скопипастить?

dermamaхочу чтобы boy_id было primary key, а toy_id было foreign keyТехнически сделать это несложно:
Код: sql
1.
ALTER TABLE toys ADD FOREIGN KEY (toy_id) REFERENCES boys (boy_id)

Но смысла я в этом не вижу. Довольно редко бывает нужно, чтобы первичный ключ одной таблицы ссылался на первичный ключ другой таблицы.


А поччему вы не использовали ограничение Constraint, я просто только изучаю и мне интересно как это работает, но во всех случаях я видел Constraint.
...
Рейтинг: 0 / 0
24.06.2018, 19:06
    #39664873
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
dermama,
...
Рейтинг: 0 / 0
24.06.2018, 19:16
    #39664877
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
dermamaА поччему вы не использовали ограничение Constraint, я просто только изучаю и мне интересно как это работает, но во всех случаях я видел Constraint.В нем просто задается имя ограничения, оно необязательно. Если нужно - используйте.
...
Рейтинг: 0 / 0
24.06.2018, 19:18
    #39664879
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
dermamadermama,

Таки научитесь копипастить текстом.

Поскольку вы уже навставляли данных в таблицы, то в toys.toy_id образовалось значение, которого нет в boys.boy_id. А при наличии внешнего ключа такое недопустимо. Вот он и не создается.
...
Рейтинг: 0 / 0
24.06.2018, 19:51
    #39664889
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
тогда как мне его создать тебе? что удалить что изменить, как это сделать)
...
Рейтинг: 0 / 0
24.06.2018, 19:54
    #39664891
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
dermamaчто удалить что изменить, как это сделать)самое простое - удалить все записи из таблицы toys.
...
Рейтинг: 0 / 0
24.06.2018, 20:07
    #39664897
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
получается если я присваиваю таблице ,которая должна иметь внешний ключ, основной ключ и заполняю ее, то присвоить внешний ключ ей уже не получится?
...
Рейтинг: 0 / 0
24.06.2018, 20:07
    #39664899
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
dermamaтогда как мне его создать тебе? что удалить что изменить, как это сделать)


ни тебе , а теперь, прошу прощения)
...
Рейтинг: 0 / 0
24.06.2018, 20:17
    #39664907
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний ключ
dermamaполучается если я присваиваю таблице ,которая должна иметь внешний ключ, основной ключ и заполняю ее, то присвоить внешний ключ ей уже не получится?Получится только при условии, что в поле toys.toy_id не будет значений, которых нет в boys.boy_id.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Внешний ключ / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]