Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Relations! / 18 сообщений из 18, страница 1 из 1
07.08.2003, 14:09
    #32230017
Sirios
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Народ! Как в связях таблиц указать поддержку каскадного удаления и обновления. Например в таких таблицах NAME_T1 и NAME_T0:

"create table NAME_T1(
id_f int not null auto_increment primary key ,
id_c int,
name tinytext,
data date,
time varchar(5),
view int,
id_u int,
constraint fk_id_c foreign key (id_c)
references NAME_T0 (id_c)
)"

????
...
Рейтинг: 0 / 0
07.08.2003, 14:22
    #32230034
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
MySQL не поддерживает реляцию. Хотя - при создании таблицы с constraint он ошибу может и не выдаст, но референсы реально работать не будут.
...
Рейтинг: 0 / 0
07.08.2003, 14:30
    #32230045
Sirios
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
А как тогда в дочерних таблицах проследить удалении записи родительской таблицы и соответственно обновить их?
...
Рейтинг: 0 / 0
07.08.2003, 14:32
    #32230050
Stellar.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
руками.
MySQL - это недо-СУБД.
Забудь про каскадное взаимодействие, FOREIGN KEYS, CHECKS, TRIGGERS, VIEWS и т.д.
...
Рейтинг: 0 / 0
07.08.2003, 14:35
    #32230054
Sirios
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Вот те раз!!! :) Куда я попал? Зачем я родился? Зачем я споткнулся об MySQL?
И в страшном сне такой гемор не приснится!!! :) Эт ж закат солнца вручную!
...
Рейтинг: 0 / 0
07.08.2003, 14:59
    #32230107
Stellar.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Используй PostgreSQL.
...
Рейтинг: 0 / 0
07.08.2003, 15:12
    #32230137
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Используй FB или Yaffil
Постгрю несколько геморно под винды вставить.
Либо - на клиенте апдейть две таблицы вместо одной - тоже вариант.
...
Рейтинг: 0 / 0
07.08.2003, 15:20
    #32230156
Stellar.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
на винде надо использовать MSSQL
...
Рейтинг: 0 / 0
07.08.2003, 15:59
    #32230241
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
FB и Yaffil быстрее, Yaffil - дешевле MS, FB - вааще бесплатный.
Смысла нету в MS.
...
Рейтинг: 0 / 0
07.08.2003, 16:46
    #32230327
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
mysql поддерживает foreign keys, каскадные удаления/обновления , нулификацию и тд.
Неграмотным советчикам -читать доки на предмет innodb до просветления.
...
Рейтинг: 0 / 0
07.08.2003, 16:57
    #32230347
Stellar.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Негратоным советчикам смотреть скорость работы mysql с innodb.

НО все равно, в MySQL нет триггеров, views, процедурного языка, нормальных constraint-ов и т.д.
...
Рейтинг: 0 / 0
07.08.2003, 17:23
    #32230378
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Ха! Я то как раз сравнивал скорость работы innodb с другими базами. А вот вы то похоже нет, судя по тому как подставляетесь в этом вопросе.

Насчет триггеров и тд. Человек о чем спрашивал? О триггерах, или о каскадирвании по fk?
А вы что ответили? что не бывает каскадирования в mysql? После того как вам указали на документацию, совесть не мучает за такие советы?
...
Рейтинг: 0 / 0
07.08.2003, 17:37
    #32230399
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
2Хрен, а ты уверен, что FK будет целосность данных проверять. До недавнего времени поддерживался сам синтаксис, но удалить запись можно было свободно...

Или я ошибаюсь .?!
mahoune
...
Рейтинг: 0 / 0
07.08.2003, 17:51
    #32230418
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
mysql> create table n1 (uq int auto_increment primary key,
    -> fld1 int,
    -> index (fld1)) type=innodb;
Query OK,  0  rows affected ( 0 . 15  sec)

mysql> insert into n1 (fld1) values ( 1 ),( 2 ),( 3 );
Query OK,  3  rows affected ( 0 . 05  sec)
Records:  3   Duplicates:  0   Warnings:  0 

mysql> create table n3 (i int,
    -> index (i),
    -> foreign key (i) references n1(fld1) on delete cascade) type=innodb;
Query OK,  0  rows affected ( 0 . 03  sec)

mysql> insert into n3 values( 1 ),( 1 ),( 2 ),( 2 );
Query OK,  4  rows affected ( 0 . 00  sec)
Records:  4   Duplicates:  0   Warnings:  0 


Дальше проверяем на вшивость
Код: plaintext
1.
2.
mysql> insert into n3 values( 100 );
ERROR  1216 : Cannot add or update a child row: a foreign key constraint fails


Проверяем как работает удаление с каскадированием.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
mysql> select * from n1;
+ ----+------+
 
| uq | fld1 |
+ ----+------+
 
|   1  |     1  |
|   2  |     2  |
|   3  |     3  |
+ ----+------+
 
 3  rows in set ( 0 . 03  sec)

mysql> select * from n3;
+ ------+
 
| i    |
+ ------+
 
|     1  |
|     1  |
|     2  |
|     2  |
+ ------+
 
 4  rows in set ( 0 . 00  sec)

mysql> delete from n1 where fld1 =  1 ;
Query OK,  1  row affected ( 0 . 05  sec)

mysql> select * from n3;
+ ------+
 
| i    |
+ ------+
 
|     2  |
|     2  |
+ ------+
 
 2  rows in set ( 0 . 00  sec)
...
Рейтинг: 0 / 0
07.08.2003, 18:00
    #32230432
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
2Хрен, это есть хорошо! А на какой версии MySQL проверялось?
...
Рейтинг: 0 / 0
07.08.2003, 18:02
    #32230435
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
mysql> select version();
+ -----------+
 
| version() |
+ -----------+
 
|  4 . 0 . 14     |
+ -----------+
 
 1  row in set ( 0 . 02  sec)

...
Рейтинг: 0 / 0
07.08.2003, 22:44
    #32230565
BigHarryy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
А я innodb и не пользуюся - а оказывается - полезная весчь...
Впрочем - пока все и так великолепно - без транзакций и форейнов...
Кстати - никто не проверял - сильно тормознее будут выборки / вставки / удаления для таблиц innodb в отличие от myisam ?
...
Рейтинг: 0 / 0
08.08.2003, 09:08
    #32230698
Sirios
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Relations!
2Хрен,
Да ВЫ я вижу головастик в MySQL!!! Это радует, что не все черепа за границу рванули. Спасибо! Вы все мне очень помогли. Я уж стрелятьси собралси
-------------------------------------------------------------------------------
Админ Apache-серевера разрешает только MySQL поставить для внешнего сегмента сети. Поэтому бовольно громозкую базу нужно юзать вдоль и поперек с тоннами связей....

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


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