Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблемы при установке ключа FOREIGN KEY
 
 автор: Jurik   (23.01.2005 в 18:26)   письмо автору
 
 

Добрый вечер!
Тренируюсь в MySQl и вот возникла проблема - хотел в одной таблице создать внешний ключ на другую, но получаю Error, хотя один в один по учебнику.
Error 1217 (23000) Cannot delete or update a paernt row: a foreign key constraint fails
Error 1050 (42S01) Table 'operation' already exists.

Заранее прошу прощение за флуд, но но ниже привожу исходник моего скрипта

USE spy;
DROP TABLE IF EXISTS agent;
CREATE TABLE agent (
  agentID int(11) NOT NULL AUTO_INCREMENT,
  name varchar (50) default NULL,
  operationID int(11),
  PRIMARY KEY (agentID),
  FOREIGN KEY (operationID) REFERENCES operation (operationID)
);

DESCRIBE agent;

INSERT INTO agent VALUES (
null, 'Bond', 1);

SELECT * FROM agent;

USE spy;
DROP TABLE IF EXISTS operation;
CREATE TABLE operation (
  operationID int(11) NOT NULL AUTO_INCREMENT,
  name varchar (50) default NULL,
  description varchar (50) default NULL,
  location varchar (50) default NULL,
  PRIMARY KEY (operationID)
  
);

DESCRIBE operation;

INSERT INTO operation VALUES (
null, 'Dancing Elephant', 'Inflitrate suspicious zoo', 'London'
);

SELECT * FROM operation;



И что самое обидно-непонятное, каждая строка ясна. Понимаю ведь, что и зачем происходт. Но откуда ошибка??? Мистика....
Помогите, пожалуйста.

   
 
 автор: cheops   (23.01.2005 в 18:42)   письмо автору
 
   для: Jurik   (23.01.2005 в 18:26)
 

Хм... а версия MySQL какая? У меня на 4.0.22 SQL-код выполнился без проблем. Правда версия 4.0 и внешние ключи не поддерживает - в ней только ключевые слова зарезирвированы.

   
 
 автор: Jurik   (23.01.2005 в 18:43)   письмо автору
 
   для: cheops   (23.01.2005 в 18:42)
 

Хороший вопрос....
А какой командой версию MySQL посмотреть?

   
 
 автор: Jurik   (23.01.2005 в 18:46)   письмо автору
 
   для: cheops   (23.01.2005 в 18:42)
 

MySQL 4.1.8 -nt - такое может быть?
Скачивал недавно - перед Новым Годом с оф. сайта.
Может чего переставить надо?

   
 
 автор: cheops   (23.01.2005 в 18:54)   письмо автору
 
   для: Jurik   (23.01.2005 в 18:46)
 

Версию можно посмотреть командой
SELECT VERSION();

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

   
 
 автор: Jurik   (23.01.2005 в 19:35)   письмо автору
 
   для: cheops   (23.01.2005 в 18:54)
 

Так что же мне делать?

   
 
 автор: cheops   (23.01.2005 в 20:21)   письмо автору
 
   для: Jurik   (23.01.2005 в 19:35)
 

Если у вас имются готовые базы данных сделайте их дамп при помощи утилиты mysqldump:
mysqldump имя_базы>имя_файла.sql

Попробуйте в нём разобраться... или выложите небольшой кусок сюда - вместе подумаем... я сейчас просто не могу 4.1 поставить, чтобы в ней поковыряться.

   
 
 автор: Jura   (27.01.2005 в 11:06)
 
   для: cheops   (23.01.2005 в 20:21)
 

Уважаемый cheops!
Спасибо за помощь и поддержку - база данных пошла. Извиняюсь, что в диалоге был перерыв - был занят на работе.
С уважением,
Юра.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования