When I want to create a relation between two tables in designer mode with phpMyAdmin 4.3.8, it gives me an error saying: Error: relational features are disabled!
When I try it with 4.1.4, it works just fine.
I can’t seem to find where I should change the settings to be able to create relations in designer mode.
Any idea?
Thanks in advance!
asked Jan 29, 2015 at 15:33
Convert your table/db engine to InnoDB using
ALTER TABLE table_name ENGINE=InnoDB;
answered Aug 11, 2016 at 11:00
Mwangi ThigaMwangi Thiga
1,33918 silver badges22 bronze badges
4
I had the same issue, it was because I didn’t have a database on the mysql server for pypMyAdmin settings.
So you may need to update your PMA settings database or create one…
There is a guide on how to do it here
answered Apr 30, 2015 at 8:43
I have faced the same error I didn’t create any PMA Users I just upgraded the version of phpmyadmin to latest version and everything worked just fine
here is the link for downloading and for me it was 4.6.0
https://www.phpmyadmin.net/downloads/
and for me I was working on MAMP Pro so I just did :
- I stopped the server (MAMP Pro).
- I copied the file (config.inc.php) from the old phpmyadmin folder to the new one.
- I replaced the older version with the new one in («/Applications/MAMP/bin/»).
- I copied the same new version folder to («/Library/Application Support/appsolute/MAMP PRO/») because I am working with MAMP Pro not MAMP.
- And then I restarted the server (MAMP Pro ) and everything worked just fine.
I hope it will work for you as well.
answered Mar 24, 2016 at 18:32
NourNour
1,4581 gold badge18 silver badges27 bronze badges
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Активные темы Темы без ответов
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2011-05-07 08:34:48 (изменено: dobroe_utro, 2011-05-07 08:43:54)
- dobroe_utro
- Новичок
- Неактивен
- Зарегистрирован: 2011-05-07
- Сообщений: 1
Тема: Не отображаются связи в designer базы данных.
Доброе всем утро.
Прошу Вас помочь мне-))))
Создала бд, и мне нужно соединить линиями таблички в designer
один раз щелкнули на одном поле, потом на другом, с которым нужно соединить, появится окошечко
‘create relation&’ нажала ок. И линия не отображается…. Сорри.
2 Ответ от Hanut 2011-05-07 11:45:37
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Не отображаются связи в designer базы данных.
dobroe_utro сказал:
один раз щелкнули на одном поле, потом на другом, с которым нужно соединить
В панели инструментов нажимаем кнопку «Создать связь», после чего рядом с курсором появится надпись «Выберите ссылочный ключ», выбираемое поле ссылочного ключа должно иметь тип индекса (иконка ключика); после выбора ссылочного ключа, рядом с курсором появится надпись «Выберите внешний ключ», выбираем связываемое поле в другой таблице и линия должна появиться. Связь уже создана, но чтобы в поле внешнего ключа отображалась желаемая информация из связанной таблицы, необходимо в панели инструментов нажать кнопку «Выбор отображаемого столбца» и кликнуть по желаемому поля для отображения в первой таблице.
Если не получится, то покажите как выглядят связываемые таблицы и какие поля требуется связать.
3 Ответ от Bernet 2011-05-17 11:36:06 (изменено: Bernet, 2011-05-17 11:54:58)
- Bernet
- Редкий гость
- Неактивен
- Зарегистрирован: 2011-05-17
- Сообщений: 5
Re: Не отображаются связи в designer базы данных.
у меня та же беда( сделал всё как вы описали, но всё равно пишет Ошибка. Связь не создана
у вас тут написано http://forum.php-myadmin.ru/viewtopic.php?id=1447 что связи для таблиц MyISAM создать нельзя, то получается надо использовать только таблицы InnoDB? и связи надо задавать через дизайнер когда соединяешь таблицы графично, или всё таки через кнопку Связи->Внутренние связи? а то я не могу понять где их вообще создавать
4 Ответ от Hanut 2011-05-17 11:55:38
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Не отображаются связи в designer базы данных.
Bernet сказал:
связи зависят от типа таблиц..?
Зависят в любом случае. Хотя даже не знаю что будет, если связать таблицы MyISAM и InnoDB — не пробовал.
5 Ответ от Hanut 2011-05-17 12:01:07
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Не отображаются связи в designer базы данных.
Bernet сказал:
связи для таблиц MyISAM создать нельзя
Связи для таблиц MyISAM создаются с помощью специального механизма phpMyAdmin, в то время, как связи таблиц InnoDB хранятся в структуре самих таблиц. Связи можно делать для обоих типов этих таблиц.
Bernet сказал:
связи надо задавать через дизайнер когда соединяешь таблицы графично, или всё таки через кнопку Связи->Внутренние связи?
Я делаю связи только через Дизайнер. На странице связей можно более точно определить связь таблиц типа InnoDB, если это надо.
6 Ответ от Bernet 2011-05-17 12:15:57
- Bernet
- Редкий гость
- Неактивен
- Зарегистрирован: 2011-05-17
- Сообщений: 5
Re: Не отображаются связи в designer базы данных.
просто я пробовал через дизайнер сначала выбирал поле с ID (первичный ключ) потом FK (вторичный ключ) но связь не создаётся пишет ‘ошибка. Связь не добавлена’, вот скрин моих табличек…
http://nextsoft-obmen.at.ua/_ph/1/677919075.png
7 Ответ от Hanut 2011-05-17 17:36:03
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Не отображаются связи в designer базы данных.
Bernet сказал:
ID (первичный ключ) потом FK (вторичный ключ)
Вроде все правильно.
Покажите структуры связываемых таблиц, чтобы я попробовал. Если получится, значит проблема где-то у вас.
8 Ответ от Bernet 2011-05-17 21:15:33
- Bernet
- Редкий гость
- Неактивен
- Зарегистрирован: 2011-05-17
- Сообщений: 5
Re: Не отображаются связи в designer базы данных.
9 Ответ от Hanut 2011-05-17 21:57:34
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Не отображаются связи в designer базы данных.
Bernet сказал:
Вот скрины всех трёх табличек
Выберите в phpMyAdmin таблицы и перейдите на страницу экспорта, где сделайте экспорт структур таблиц без данных. Нужны SQL запросы, которые будут выведены. По картинкам я не смогу сделать.
10 Ответ от Bernet 2011-05-17 22:31:07
- Bernet
- Редкий гость
- Неактивен
- Зарегистрирован: 2011-05-17
- Сообщений: 5
Re: Не отображаются связи в designer базы данных.
извините я просто только начал изучать это дело вот и туплю маленько
это оно?) Табличка1:
-- phpMyAdmin SQL Dump
-- version 2.11.4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Май 17 2011 г., 22:25
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- База данных: `computer_shop`
--
-- --------------------------------------------------------
--
-- Структура таблицы `computer`
--
CREATE TABLE IF NOT EXISTS `computer` (
`ID_Computer` int(10) unsigned NOT NULL auto_increment,
`Processor` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL,
`Chastota` double NOT NULL,
`RAM` int(11) NOT NULL,
`Model` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL,
`Release_Date` date NOT NULL,
PRIMARY KEY (`ID_Computer`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `computer`
--
табличка 2:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- База данных: `computer_shop`
--
-- --------------------------------------------------------
--
-- Структура таблицы `firms`
--
CREATE TABLE IF NOT EXISTS `firms` (
`ID_Firm` int(11) NOT NULL auto_increment,
`Firm_name` varchar(30) default NULL,
`Adres` varchar(50) default NULL,
PRIMARY KEY (`ID_Firm`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `firms`
--
и наконец третья:)
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- База данных: `computer_shop`
--
-- --------------------------------------------------------
--
-- Структура таблицы `market_supply`
--
CREATE TABLE IF NOT EXISTS `market_supply` (
`ID_Supply` int(10) unsigned NOT NULL auto_increment,
`Number_comp` int(10) unsigned NOT NULL,
`Price` int(10) unsigned NOT NULL,
`FK_Computer` int(10) unsigned NOT NULL,
`FK_Firms` int(10) unsigned NOT NULL,
PRIMARY KEY (`ID_Supply`),
KEY `FK_Computer` (`FK_Computer`),
KEY `FK_Firms` (`FK_Firms`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `market_supply`
--
--
-- Ограничения внешнего ключа сохраненных таблиц
--
--
-- Ограничения внешнего ключа таблицы `market_supply`
--
ALTER TABLE `market_supply`
ADD CONSTRAINT `market_supply_ibfk_1` FOREIGN KEY (`FK_Computer`) REFERENCES `computer` (`ID_Computer`) ON UPDATE NO ACTION;
11 Ответ от Hanut 2011-05-18 11:41:58
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Не отображаются связи в designer базы данных.
Судя по запросам, одна связь между computer.ID_Computer и market_supply.FK_Computer у вас есть и она должна отображаться в дизайнере.
Связать firms.ID_Firm и market_supply.FK_Firms у вас не получится, потому что поля имеют разный тип данных int(10) и int(11).
Если вы заходите в phpMyAdmin не под root, то обратите внимание на права пользователя, которые должны распространяться на БД phpmyadmin, где хранятся связи таблиц.
Пока не поздно, советую сделать следующее: смените тип таблиц на MyISAM; проставьте у всех таблиц единую кодировку (сейчас кодировки перемешаны); установите связи в Дизайнере.
12 Ответ от Bernet 2011-05-18 17:29:32
- Bernet
- Редкий гость
- Неактивен
- Зарегистрирован: 2011-05-17
- Сообщений: 5
Re: Не отображаются связи в designer базы данных.
Вообщем снёс ту базу сделал заново, связи в дизайнере так и не получились, сделал просто через вкладку Связи, вроде всё нормально спасибо Вам большое за помощь и потраченное время
Сообщения 12
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Когда дело доходит до управления базами данных, очень часто приходится пользоваться утилитой PhpMyAdmin. И в стандартной поставке с его помощью можно делать очень много всего. Но, как бы то ни было, у него есть ряд полезных возможностей, которые можно включить отдельно. В этой статье мы раскроем дополнительные возможности PhpMyAdmin, и посмотрим, чем они могут быть нам полезны.
Настройка
Перед тем как начать, убедитесь, что PhpMyAdmin запущен и работает. Если вы залогинитесь, то, возможно, обратите внимание на сообщение следующего вида:
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.
(Хранилище конфигураций phpMyAdmin не настроено должным образом, некоторые возможности отключены. Чтобы узнать почему, нажмите здесь)
При клике на ссылку here (“здесь”), вас направят на страницу с пояснением того, что вы не активировали все возможности. Активировать их можно, добавив следующие строки в файл config.inc.php
.
$cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'pmapass'; $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords'; $cfg['Servers'][$i]['favorite'] = ‘pma__favorite’; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
Смените имя пользователя, пароль и имя базы данных по вашему собственному усмотрению. Остальные конфигурационные значения — это имена таблиц. Если оставить их пустыми, то вы отключите соответствующие им возможности. Но вообще, я бы рекомендовал оставить эти названия как есть. В зависимости от версии PhpMyAdmin не все значения будут доступны по умолчанию. В данном случае я использовал версию PhpMyAdmin 4.2.x.
Когда вы закончите с конфигом, нужно будет создать базу данных. Создайте базу данных с именем, которое вы указали в вашем конфигурационном файле. Далее поищите файл с названием create_tables.sql
на вашей машине. Скорее всего, данный файл будет находиться в корневой директории установленного PhpMyAdmin, или в поддиректории scripts. Если у вас Linux, то расположение будет следущим /usr/share/phpMyAdmin/examples/
или /usr/share/doc/phpmyadmin/scripts/
. Запустите этот файл в рамках созданной базы данных. Если вы меняли имена таблиц в вышеприведенном конфиге, не забудьте поменять их также и в базе данных.
Далее нам нужно создать пользователя с паролем, данные которого мы указали в конфиге. Выполните ниже приведенные запросы, не забыв подставить нужные имя пользователя и пароль.
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'; GRANT SELECT ( Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv ) ON mysql.user TO 'pma'@'localhost'; GRANT SELECT ON mysql.db TO 'pma'@'localhost'; GRANT SELECT ON mysql.host TO 'pma'@'localhost'; GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO 'pma'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
Завершив сеанс с PhpMyAdmin и войдя снова, мы должны увидеть, что предупреждение исчезло. Если не пропало, кликните по ссылке, чтобы узнать, чего же не хватает.
Давайте рассмотрим дополнительные возможности.
Закладки
Включив расширение bookmark
, у вас появится возможность добавлять запросы в закладки. При создании запроса его можно добавить в закладки. Также, если запрос уже был запущен, вы можете добавить его в закладки, прокрутив страницу до низу, и заполнив форму.
При переходе на вкладку SQL, внизу вы увидите панель, на которой можно выбрать запрос из закладок. Выберите нужный, и укажите, что вы хотите с ним сделать: выполнить, просмотреть, или удалить.
Связи
Опция relation
пожалуй, лучшая вещь, которой мне приходилось пользоваться. Если вы используете внешние ключи, то такие ключи станут кликабельны. При клике по внешнему ключу, вы будете переведены на другую таблицу: на ту запись, на которую ссылается внешний ключ.
Также при добавлении или редактировании внешнего ключа вместо текстового поля ввода вам будет предложен список всех возможных вариантов.
Информация о таблице
Конечно, видеть список со всеми возможными значениями для внешнего ключа хорошо. Но было бы еще лучше, если бы нам показывался конкретный столбец вместо ID. Чтобы этого добиться, нужно включить able_info
. Перейдите к основной таблице, перейдите на вкладку “Структура”, и кликните на ссылку просмотра связи. Если вы прокрутите страницу до низу, то увидите, какой столбец будет отображаться по этому ключу.
Если я создам новую запись с внешним ключом, то рядом со значением первичного ключа я увижу значение из указанной мной колонки. Теперь нет необходимости запоминать идентификатор.
Страницы PDF
Связи между таблицами можно экспортировать в PDF. Для этого в конфиге нужно активировать pdf_pages
, table_coords
и relation
. Следующим шагом откройте базу данных, которую вы хотите экспортировать в PDF. Кликните на вкладку “Операции”. Далее кликните по ссылке “Редактировать или экспортировать схему связей”. Заполните все поля и нажмите “Отправить”. Если вы заполнили форму — то у вас появится PDF файл со всеми необходимыми данными.
Информация о столбцах
С помощью опции column info
вы можете добавлять комментарии к названиям столбцов. Это может быть полезным, когда вы хотите донести до других людей, что это за столбец, и какие данные в нем хранятся. Сделать это можно, изменив данные столбца. Вы можете заметить, что к столбцу был добавлен новый комментарий. Если вы введете комментарий, то он появится прямо под именем столбца.
Таким же образом к столбцам можно применять преобразования. С помощью преобразований вы можете сделать имя файла гиперссылкой, которая откроет указанный файл.
История
Если включить history
, то все запросы, выполняемые через PhpMyAdmin будут сохраняться в вашей истории, до тех пор пока вы не завершите сеанс, или не закроете браузер. Историю можно просмотреть, вызвав диалоговое окно “Запрос”, и нажав кнопку “История SQL”
Недавние
На навигационной панели вы можете заметить кнопку “Недавние”, которая содержит выпадающий список таблиц, которые вы недавно просматривали. Этот список отображается по-умолчанию. Но если вы хотите хранить его постоянно между сессиями, можете включить опцию recent
в конфиге, и ваша история посещений будет сохранена в базе.
Настройки отображения таблицы
Просматривая таблицы, вы можете изменять порядок столбцов перемещением. Эти изменения видимы только вам. Настоящий порядок столбцов при этом не изменяется. В дополнение вы также можете сортировать столбцы по возрастанию и по убыванию. Такие изменения хранятся в пределах сессии, а при разлогировании будут сброшены и заменены на настройки по-умолчанию. Однако, если вы хотите, чтобы таблицы выгладили “по-вашему” всё время, то активируйте опцию table_uiprefs
.
Пользователи и группы пользователей
Возможно, вы не хотите отображать все возможности для всех пользователей. В этом случае вы можете разбить их на группы на вкладке “Пользователи”. Создайте новую группу, и определите, что пользователи из этой группы могут видеть. Потом вы сможете добавлять пользователей в эту группу, и можете быть уверены в том, что они будут видеть только те пункты меню, которые вы разрешили видеть. Таким образом вы можете давать доступы различным пользователям к различным возможностям системы, а также скрывать неиспользуемые опции.
Скрытие навигации
С помощью navigationhiding
вы можете скрывать некоторые таблицы в панели навигации. При клике на иконку лампочки рядом с именем таблицы, вы её скроете. Так же можете снова сделать ее видимой, повторно кликнув на иконку лампочки. Таким образом вы разгрузите панель навигации от неиспользуемых таблиц.
Отслеживание
С помощью данной возможности вы можете отследить все изменения, которые были проведены над конкретными таблицами с помощью PhpMyAdmin. Перейдя к таблице, и открыв вкладку “Слежение”, можно создать версию текущей таблицы. Теперь все изменения, которые были проделаны над этой таблицей с помощью PhpMyAdmin, будут сохраняться. Таким же образом можно легко определить, какие изменения были произведены в таблице с момента создания последней версии.
Пользовательские настройки
Все пользовательские настройки по-умолчанию хранятся в вашем браузере. Это означает, что если вы решите воспользоваться другим браузером, или почистите кеш браузера, все ваши настройки пропадут. Активировав userconfig
вы сохраните ваши настройки в базе данных на постоянной основе.
Координаты дизайнера баз данных
Включив designer_coords
, вы можете просматривать связи между вашими таблицами в режиме дизайнера баз данных. Перейдя в базу данных и кликнув по вкладке “Дизайнер”, вы увидите нечто похожее на нижеприведенное изображение, на котором представлены связи между таблицами. Вместе с тем вы можете визуально управлять связями между таблицами с помощью этого окна.
Избранное
Включив опцию favorite
, в режиме просмотра базы данных вы можете заметить появление иконок звездочек около названий таблиц. Для добавления таблицы в избранное, достаточно кликнуть по звездочке. В панели навигации вы увидите выпадающий список “Избранное”. Таблицы, которые вы добавили в избранное, появятся в этом списке.
Сохранение параметров поиска
Открыв базу данных и перейдя на вкладку “Запрос”, вы можете настроить расширенный поиск. Параметры поиска можно добавить в закладки. Отмечу, что это не закладки SQL-запросов, рассмотренные ранее. С помощью этой опции вы можете сохранить параметры поиска, и использовать их позже.
Заключение
Включить перечисленные возможности просто, и они могут действительно помочь в работе с базами данных через PhpMyAdmin. Мне особенно нравится возможность перехода по внешним ключам, так, что я могу видеть связанные записи. Надеюсь, вы активируете данные возможности, и они будут полезны в вашей повседневной работе.
When I want to create a relation between two tables in designer mode with phpMyAdmin 4.3.8, it gives me an error saying: Error: relational features are disabled!
When I try it with 4.1.4, it works just fine.
I can’t seem to find where I should change the settings to be able to create relations in designer mode.
Any idea?
Thanks in advance!
asked Jan 29, 2015 at 15:33
Convert your table/db engine to InnoDB using
ALTER TABLE table_name ENGINE=InnoDB;
answered Aug 11, 2016 at 11:00
Mwangi ThigaMwangi Thiga
1,33918 silver badges22 bronze badges
4
I had the same issue, it was because I didn’t have a database on the mysql server for pypMyAdmin settings.
So you may need to update your PMA settings database or create one…
There is a guide on how to do it here
answered Apr 30, 2015 at 8:43
I have faced the same error I didn’t create any PMA Users I just upgraded the version of phpmyadmin to latest version and everything worked just fine
here is the link for downloading and for me it was 4.6.0
https://www.phpmyadmin.net/downloads/
and for me I was working on MAMP Pro so I just did :
- I stopped the server (MAMP Pro).
- I copied the file (config.inc.php) from the old phpmyadmin folder to the new one.
- I replaced the older version with the new one in («/Applications/MAMP/bin/»).
- I copied the same new version folder to («/Library/Application Support/appsolute/MAMP PRO/») because I am working with MAMP Pro not MAMP.
- And then I restarted the server (MAMP Pro ) and everything worked just fine.
I hope it will work for you as well.
answered Mar 24, 2016 at 18:32
NourNour
1,4581 gold badge18 silver badges27 bronze badges
@rpsv
делай либо хорошо, либо никак
Почему не устанавливаются связи между таблицами?
Здрасте! Столкнулся с непонятной проблемой:
Имеются 2 таблицы:
Страны:
Код создания таблицы
CREATE TABLE `countrys` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
Города:
Код создания таблицы
CREATE TABLE `citys` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`id_country` INT(11) NOT NULL,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`),
INDEX `FK__countrys` (`id_country`),
CONSTRAINT `FK__countrys` FOREIGN KEY (`id_country`) REFERENCES `countrys` (`id`)
)
COLLATE='cp1251_general_ci'
ENGINE=InnoDB;
Связь:
countrys.id = citys.id_country
Но вот забавно то, что я могу спокойной добавить строку в таблицу «Города» указав рандомный ID страны (при чем таблица Countrys вообще пустая:
INSERT INTO `citys` (id_country, name) VALUES (666, 'Курган');
Подскажите в чем проблема… (даже в phpMyAdmin установил связи, все равно не помогает)
СУБД: mySQL
-
Вопрос заданболее трёх лет назад
-
4641 просмотр
Все работает.
Ваши скрипты создали таблицы, но запрос
INSERT INTO `citys` (id_country, name) VALUES (666, 'Курган');
логично вызвал ошибку
#1452 - Cannot add or update a child row: a foreign key constraint fails (`test`.`citys`, CONSTRAINT `FK__countrys` FOREIGN KEY (`id_country`) REFERENCES `countrys` (`id`))
Что по-русски в данном контексте «Сначала добавь страну с номером 666».
И да. Множественное число.
Пригласить эксперта
[offtop]
Множественное число слов city и country: cities и countries
[/offtop]
Таблицы связываются логически, записи просто так автоматом появляться не будут, если я вообще правильно понял вопрос…
-
Показать ещё
Загружается…
25 июн. 2023, в 10:30
6000 руб./за проект
25 июн. 2023, в 10:26
15000 руб./за проект
25 июн. 2023, в 09:57
7000 руб./за проект