Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: sql cвязи

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
xTODx
Отправлено: 23 Февраля, 2014 - 00:08:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




Всем привет! вот пришло время обеспечить целостность базы данных, но связи не хотят создаваться. Ни каких сообщений о ошибки. работаю через дизайнера в phpmyadmin Выбираю ключ, выбираю второе поле, нажимаю окей, реакции 0, связи не рисует. и в общем её вообще нету. что делать не знаю.

(Отредактировано автором: 23 Февраля, 2014 - 00:08:34)



-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
caballero
Отправлено: 23 Февраля, 2014 - 00:18:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




таблицы innodb?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
xTODx
Отправлено: 23 Февраля, 2014 - 00:33:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




caballero пишет:
таблицы innodb?

угу.. InnoDB все таблицы.

может делаю что не так??? как вообще нужно их создавать?

изначально цель такова, если у меня с таблицы category удалят одну категорию $id, то в таблице theme удалятся все темы у которых соответственно поле category = $id
(Этапы)
1) нажимаю "создать связь " в дизайнере
2) выбираю ключевое поле в таблице категорий
3) выбираю поле категорий в таблице с темами.

(Отредактировано автором: 23 Февраля, 2014 - 00:48:48)



-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
caballero
Отправлено: 23 Февраля, 2014 - 01:10:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




для этого надо задать каскадное удаление а не некую связь в дизайнере


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
xTODx
Отправлено: 23 Февраля, 2014 - 01:39:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




caballero пишет:
для этого надо задать каскадное удаление а не некую связь в дизайнере
хм, спасибо. и как это сделать? связь ведь "один к многим"

(Отредактировано автором: 23 Февраля, 2014 - 09:08:48)



-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
xTODx
Отправлено: 23 Февраля, 2014 - 09:17:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. FOREIGN KEY category (`id`) REFERENCES  theme(`category`)
  3.  

Пока нашёл вот такое вот. Но на сколько я понимаю, оно просто не даёт создавать в таблице тема строки, параметра category которых нету в таблице категорий(столбце id);
и так же запрещает удалять категорию, если в ней есть темы.
Но мне нужно что бы при удалении категорий, удалялись все темы.
неужели запросами всё?
Либо так?
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TRIGGER auto_del BEFORE DELETE ON forum_categ
  2. FOR EACH ROW BEGIN
  3. DELETE FROM forum_theme WHERE categ = OLD.id;
  4. END;

но тут где то ошибочка
Спойлер (Отобразить)

(Отредактировано автором: 23 Февраля, 2014 - 09:29:54)



-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
Мелкий Супермодератор
Отправлено: 23 Февраля, 2014 - 09:35:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]constraints[dot]html
По-умолчанию restrict, только проверка данных.
Вы, так понял, хотите ON DELETE CASCADE


-----
PostgreSQL DBA
 
 Top
xTODx
Отправлено: 23 Февраля, 2014 - 10:08:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




Мелкий пишет:
http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]constraints[dot]html
По-умолчанию restrict, только проверка данных.
Вы, так понял, хотите ON DELETE CASCADE

угу, по ссылочке перешёл, посмотрел. Как быть, у меня уже есть база данных,
а там создют везде
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE doc (
  3. docID INTEGER NOT NULL AUTO_INCREMENT,
  4. langCode CHAR(2) NOT NULL,
  5. title VARCHAR(32),
  6. PRIMARY KEY (docID, langCode)
  7. ) Type=InnoDB;
  8.  
  9. CREATE TABLE author (
  10. authorID INTEGER NOT NULL AUTO_INCREMENT,
  11. docID CHAR(2) NOT NULL,
  12. name VARCHAR(32),
  13. PRIMARY KEY (authorID),
  14. FOREIGN KEY (docID) REFERENCES doc(docID) ON DELETE CASCADE ON UPDATE CASCADE
  15. ) Type=InnoDB;
  16.  

help.


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
Мелкий Супермодератор
Отправлено: 23 Февраля, 2014 - 11:01:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Обычным alter table http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]alter-table[dot]html
Ищите по FOREIGN KEY


-----
PostgreSQL DBA
 
 Top
xTODx
Отправлено: 23 Февраля, 2014 - 11:17:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




Мелкий пишет:
Обычным alter table http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]alter-table[dot]html
Ищите по FOREIGN KEY

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

(Отредактировано автором: 23 Февраля, 2014 - 13:48:46)



-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
xTODx
Отправлено: 23 Февраля, 2014 - 22:33:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




Дорогие форумчане HELP MEУлыбка напишите, пожалуйста.. я нуждаюсь в помощи


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
caballero
Отправлено: 23 Февраля, 2014 - 23:31:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




не нуждаешся.
Нафига тебе эти связи? чего такого решить ими хочешь?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
retvizan
Отправлено: 24 Февраля, 2014 - 13:37:07
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




http://webew[dot]ru/posts/219[dot]webew
Понятное объяснение на руссском с примером как задавать связи на уже созданных таблицах.
 
 Top
xTODx
Отправлено: 24 Февраля, 2014 - 14:46:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




retvizan пишет:
http://webew[dot]ru/posts/219[dot]webew
Понятное объяснение на руссском с примером как задавать связи на уже созданных таблицах.

Спасибо, почитал, понял "это то что мне нужно". Даже возрадовался...
но..
CODE (SQL):
скопировать код в буфер обмена
  1. ALTER TABLE forum_theme
  2. ADD FOREIGN KEY (categ)
  3. REFERENCES forum_categ(id)
  4. ON UPDATE CASCADE
  5. ON DELETE CASCADE ;


CODE (text):
скопировать код в буфер обмена
  1.  
  2. #1005 - Can't create table 'maindb2.#sql-19b8_20e' (errno: 150) (Детали...)
  3.  

Нажал детали. получил

CODE (text):
скопировать код в буфер обмена
  1. Supports transactions, row-level locking, and foreign keys


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
Мелкий Супермодератор
Отправлено: 24 Февраля, 2014 - 14:54:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




errno 150 - проверьте типы данных в обеих таблицах. unsigned int и int, не говоря уже о int и tinyint не могут быть связаны ключом, только идентичный тип данных.


-----
PostgreSQL DBA
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB