|
|
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Нужно сделать в MySQL следующее: Код: sql 1. 2. Естественно, если один из запросов не отработает, то ничего в базе не должно измениться. Можно ли сделать это за одно обращение к базе, например, разделив запросы каким-либо символом или нужно открывать транзакцию, делать один, потом второй запрос и закрывать транзакцию? Если можно - примерчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 14:17:28 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_, синтаксис в этом случае похож на JOIN. в DELETE FROM перечисляете таблицы из которых удалить, а потом в USING указываете как их объединить. Почитайте в документации DELETE Multiple-table syntax авторЕстественно, если один из запросов не отработает, то ничего в базе не должно измениться. И по каким же причинам вы предполагаете что не отработает? Конечно, myisam гарантии не даст. При внештатной ситуации оператор может прерваться в любой момент и оставить таблицы не связанными или сломанными. Если вас это волнует - делайте транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 16:07:49 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Netwind, ни о каких мультитабличных запросах DELETE речь не идет. Задача стоит следующим образом: нужно выполнить один запрос, который удалит несколько строк из таблицы Translate, затем, сразу же, должен отработать второй запрос, который удалит строчку из таблицы RWords. В случае ошибки, в базе не должно произойти никаких изменений. Код: sql 1. 2. Оба запроса посылаются из программы, написанной на чем-угодно. Если бы такая задача стояла, например, в базе MSSQL, то решалась бы она приблизительно так: Код: sql 1. 2. 3. 4. Т.е. пишется один запрос, затем точка с запятой и второй запрос. MSSQL нормально отрабатывает. В MySQL такой фокус не проходит. Каждый из запросов в отдельности отрабатывает нормально. Если пишешь сразу два запроса - выдается ошибка. Как можно решить эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 17:36:33 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_, вы на вопрос не ответили. В случае какой ошибки ? Это вы где-то в интернете прочитали что "база данных должна быть надежна" или есть осознанное понимание, что вам это необходимо ? >MSSQL нормально отрабатывает. В MySQL такой фокус не проходит. Ну вот и купите еще пару лицензий MSSQL, да выпейте чаю на сдачу. Разные программы работают по-разному. Просто точка с запятой не будет работать. В клиентском протоколе есть способ запихнуть и два запроса и получить два ответа за один вызов, но не вижу чтобы это вам было нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 17:52:48 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Netwind, отвечаю на ваш вопрос. Ошибка может быть любой. Например, база данных не даст удалить запись из одной таблицы, по причине наложенных не нее ограничений. Хотелось бы узнать, такое как я хочу сделать, вообще возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 18:03:06 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_, любой - это не формулировка. Например, я считаю допустимым такое странное решение, как объединять в один мультитабличный delete-запрос (который на самом деле решает вашу проблему если бы вы внимательно над ним подумали) если предполагается эксплуатация продукта на php с максимальной "выживаемостью" дешевом хостинге с myisam. Хостинг убьет скрипт, а запрос не убьет. Целостность данных не нарушится. Совершенно другое дело, когда предполагается серьезный подход к хранению, отказам оборудования и , соответственно, транзакциям. Если не мудрствовать и в общем случае - просто сделайте транзакции в innodb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 18:11:00 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
netwind, Код: sql 1. 2. 3. 4. 5. 6. не работает. Наверно, что -то не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 19:12:34 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 06:51:52 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_MSSQL нормально отрабатывает. В MySQL такой фокус не проходит. Каждый из запросов в отдельности отрабатывает нормально. Если пишешь сразу два запроса - выдается ошибка. Как можно решить эту проблему? Вопросы к библиотеке доступа или драйверу доступа. Ramzay_Netwind, ни о каких мультитабличных запросах DELETE речь не идет. Задача стоит следующим образом: нужно выполнить один запрос, который удалит несколько строк из таблицы Translate, затем, сразу же, должен отработать второй запрос, который удалит строчку из таблицы RWords. В случае ошибки, в базе не должно произойти никаких изменений. Речь идёт именно о мультитабличном удалении. И Ваше упорное нежелание прочитать документацию и понять то, что там написано - не аргумент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 09:02:42 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ой, чувствую себя как оплеваный. Код: sql 1. 2. 3. 4. 5. 6. Ошибка выглядит так же как и без транзакций: Код: sql 1. Хоть ссылку дайте, где почитать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 07:55:20 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_Хоть ссылку дайте, где почитать...AkinaВопросы к библиотеке доступа или драйверу доступа.В одбц, например, надо включить "allow multiple statements". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 07:58:12 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Вот иной раз думаешь, что человек тупой, а он на самом деле просто слишком упорный... Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 09:21:56 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
AkinaВот иной раз думаешь, что человек тупой, а он на самом деле просто слишком упорный... Ну че сразу обзываться? Да тупой. За тем на форум люди и хотят, что бы ума набираться. Код: sql 1. 2. 3. Данный код на 100% решает поставленную задачу. Спасибо. Задавая вопрос мне хотелось бы выяснить еще одну проблему. Можно ли за одно обращение к базе из внешней программы выполнить сразу 2 запроса. Например: Код: sql 1. 2. Каждый из запросов в отдельности выполняется без ошибок. Можно ли выполнить сразу 2 запроса? 2 тех запроса, которые показаны в примере или каких-либо других. При выполнении сразу 2-запросов выдается Код: sql 1. Установка точки с запятой между запросами не помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 18:52:13 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
tanglirВ одбц, например, надо включить "allow multiple statements". Включил, получилось выполнить два запроса Delete. Ура. Однако, если выполнять два запроса подряд Select а потом Delete то набор данных не возвращается. Почему не пойму... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 19:22:33 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_Ну че сразу обзываться? Да тупой. За тем на форум люди и хотят, что бы ума набираться. Тебе сказали про многотабличное удаление? сказали... причём не один раз. Ума набираться - это прочитать справку и попытаться понять, почему был дан такой совет. Прочитал, но не понимаешь - предметно спроси. А что мы видим? облыжное утверждение, что о многотабличном удалении речи не идёт, а потом - молчаливый игнор. Так что совсем даже не сразу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 21:06:25 |
|
||
|
Можно ли в MYSQL выполнить сразу 2 запроса?
|
|||
|---|---|---|---|
|
#18+
Ramzay_если выполнять два запроса подряд Select а потом Delete то набор данных не возвращается. Почему не пойму...Потому что возвращается как минимум ТРИ набора данных. Изволь перебрать коллекцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 21:07:36 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38865017&tid=1833633]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 320ms |

| 0 / 0 |
