powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Несколько Вопросов !
6 сообщений из 6, страница 1 из 1
Несколько Вопросов !
    #33442492
xxx-lu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый всем вечер !

У меня вот возникло несколько не понятных мне вопросов,
надеюсь, что кто-нибудь сможет мне почочь с ними.

1)
Подскажите пожалуйста, как можно вывести запрос вот такого типа:

start transaction;
select * from t1;
select * from t2;
select * from t3;
commit;

с помощью функции mysql_query()? Ведь эта функция выдает ошибку, когда в ней ставишь ';'
Может как по другому это можно выполнить ?

2)
Имеется ли в MySQL поддержка удаления связаных строк (по внешним ключам) из разных таблиц?
ну т.е. удаляю например из таблицы t1 строку и автоматически удаляется такая же строка (такой же id) из таблицы t2

Надеюсь на ваш опыт и доброту.......
Заранее спасибо!
...
Рейтинг: 0 / 0
Несколько Вопросов !
    #33442533
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм. Хм. на доброту??
Ну ладно тогда.

1) Вы похоже человек с interbase/firebird опытом. В mysql в отличии от них нет нужды открывать транзакцию для select
2) а что вы хотите в результате такого составного запроса? список записей из всех перечисленных таблиц? в таком случае используйте select .... union select .... и т.д. Или прочитайте документацию про merge тип таблиц.

3) по поводу каскадирования удалений - есть в innodb таблицах. точно также как и везде описываешь foreigh key тра-ляля on delete cascade . Вот тут подробнее http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
...
Рейтинг: 0 / 0
Несколько Вопросов !
    #33442735
xxx-lu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1)
Да нет, мне не нужно выводить SELECT. Его я написал просто для примера.
На самом деле, у меня имеется так сказать "форум" и при добавлении новой темы происходит ряд запросов, а именно вот эти:

mysql_query('insert into letters values("",'.$mas[0].','.$_COOKIE['id'].',0,'.$fldr.',DATE_ADD(SYSDATE(),INTERVAL '.$time_zone.' HOUR))');
mysql_query('insert into topics values('.mysql_insert_id().',"'.$_POST['topic'].'")');
mysql_query('insert into messages values('.mysql_insert_id().',"'.$_POST['mess'].'")');
mysql_query('insert into new_letters values('.mysql_insert_id().','.$mas[0].','.$_COOKIE['id'].')');
mysql_query('update users set count=count+1 where id='.$_COOKIE['id']);

Вот именно вот эти запросы я хочу вывести при помощи транзакций, как это можно сделать? - именно вот это я и хотел узнать!

2)
По поводу Каскадирования - огромное спасибо !
Токо, у меня возник еще не болшой вопросик:
Что быдет работать быстрее при выполнении запроса:

Вот это
delete from one,two
using one,two
where one.id=two.id and one.id=2;

или Каскадное удаление?

Заранее огромное спасибо !
...
Рейтинг: 0 / 0
Несколько Вопросов !
    #33444584
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если работать напрямую через API - почитайте мультизапросы, с 5.0
http://dev.mysql.com/doc/refman/5.0/en/c-api-multiple-queries.html
...
Рейтинг: 0 / 0
Несколько Вопросов !
    #33447719
xxx-lu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валентин К: Я так понял они работают только с версиями не ниже 5.0.
А что если у меня 4ая версия стоит, как можно решить эту проблему?
Будут ли корректно работать данные запосы:

mysql_query('start transaction');
mysql_query('insert into letters values(null,'.$mas[0].','.$_COOKIE['id'].',0,'.$fldr.',DATE_ADD(NOW(),INTERVAL '.$time_zone.' HOUR))');
mysql_query('insert into subject values('.mysql_insert_id().',"'.$_POST['topic'].'")');
mysql_query('insert into contents values('.mysql_insert_id().',"'.$_POST['mess'].'")');
mysql_query('insert into new_letters values('.mysql_insert_id().','.$mas[0].','.$_COOKIE['id'].')');
mysql_query('update users set count=count+1 where id='.$_COOKIE['id']);
mysql_query('commit');
...
Рейтинг: 0 / 0
Несколько Вопросов !
    #33447792
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В одной транзакции - непроблема, таблицы должны быть транзакционные InnoDB или BDB.
ТОлько нужно каждый запрос выполнять отдельно, а потом постить.

Проведите тест на ошибки.
На транзакции тест проводить не нужно - они нормально работают.
В начале нужно отключть автокоммит

SET AUTOCOMMIT=0;

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


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