Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нарушение целостности таблиц / 9 сообщений из 9, страница 1 из 1
15.05.2014, 20:01:35
    #38642746
Afelion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
Доброго времени суток.

У меня проблема и я не знаю, в чём её причина. Я могу вставить в дочернюю таблицу, которая в качестве FK использует ID родительской таблицы, значение с ID-шником, которого нет в родительской таблице.
Наверное, на языке DDL и скриншоте это будет понятней.

Пробовал разные типы таблицы - и InnoDB и MyISAM.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE TABLE City
(
  id_city   INTEGER NOT NULL,
  name_city CHAR(40),
  PRIMARY KEY (id)
);
 
CREATE TABLE Street
(
  id      INTEGER NOT NULL,
  name    CHAR(40),
  id_city INTEGER NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (id_city) REFERENCES City(id)
)

...
Рейтинг: 0 / 0
15.05.2014, 20:02:04
    #38642747
Afelion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
...
Рейтинг: 0 / 0
15.05.2014, 21:08:05
    #38642781
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
Afelion,

FOREIGN KEY (id_city) REFERENCES City(id)


в таблицы СИТИ нет колонки ИД.
...
Рейтинг: 0 / 0
15.05.2014, 21:23:49
    #38642794
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
AfelionПробовал разные типы таблицы - и InnoDB и MyISAM.Внешние ключи есть только в InnoDB.
...
Рейтинг: 0 / 0
15.05.2014, 23:13:02
    #38642886
Afelion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
miksoft, javajdbc, исправил скрипт. Проблема осталась.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE City
(
  id   INTEGER NOT NULL,
  name CHAR(40),
  PRIMARY KEY (id)
)
ENGINE = InnoDB;
 
CREATE TABLE Street
(
  id      INTEGER NOT NULL,
  name    CHAR(40),
  id_city INTEGER NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (id_city) REFERENCES City(id)
)
ENGINE = InnoDB;
...
Рейтинг: 0 / 0
16.05.2014, 08:52:46
    #38643048
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
Afelion ,

а что за проблема-то осталась?

вот же, все работает: http://sqlfiddle.com/#!2/7012a/1

OFF: может, зря вы кошек не любите?
...
Рейтинг: 0 / 0
16.05.2014, 17:54:11
    #38643816
Afelion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
Да, действительно, работает. Невозможно внести запись улицы, присвоенной городу с ID = 10, потому что нет города с таким ID.

Странно, почему же у меня это в MySQL Workbench не работает...
...
Рейтинг: 0 / 0
16.05.2014, 21:58:03
    #38643948
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
AfelionДа, действительно, работает. Невозможно внести запись улицы, присвоенной городу с ID = 10, потому что нет города с таким ID.

Странно, почему же у меня это в MySQL Workbench не работает...

Комит забыли нажать?
...
Рейтинг: 0 / 0
17.05.2014, 13:23:11
    #38644142
Afelion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нарушение целостности таблиц
javajdbcКомит забыли нажать?

Да, проблема была именно в этом. В MySQL Workbench была нажата кнопка "Auto commit" с которой он не отслеживал за целостностью таблиц. После того, как я выключил эту опцию и вручную начал комитить, то всё заработало!

Большое спасибо за помощь!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нарушение целостности таблиц / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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