Как получить количество строк, удаленных из MySQL в сценарии оболочки - PullRequest
2 голосов
/ 13 апреля 2010

Я не могу понять, как заставить клиента mysql возвращать количество строк, удаленных в оболочку, при запуске удаления. Кто-нибудь знает, какой вариант позволит это? Или способы обойти это?

Вот то, что я пытаюсь, но я не получаю вывод:

#!/bin/bash
deleted=`mysql mydb -e "delete from mytable where insertedtime < '2010-04-01 00:00:00'"|tail -n 1`

Я ожидал чего-то подобного в качестве вывода из mysql:

deleted
999999

Именно поэтому у меня есть хвост -n 1, поэтому я выбираю только количество, а не имя столбца.

При ручном запуске команды (mysql mydb -e "удалить из таблицы, где вставлено время <'2010-04-01 00:00:00'") вывод не производится. При интерактивном запуске команды при запуске клиента mysql я получаю следующее: </p>

mysql>delete from mytable where insertedtime < '2010-04-01 00:00:00';
Query OK, 0 rows affected (0.00 sec)

Я хочу получить количество затронутых строк в моей переменной оболочки.

Любая помощь будет наиболее ценной.

Ответы [ 3 ]

3 голосов
/ 13 апреля 2010
1 голос
/ 24 апреля 2013

добавить "-vv"

mysql mydb -e "удалить из таблицы mytable куда вставлено <'2010-04-01 00:00:00' -vv </p>

https://dba.stackexchange.com/questions/23527/how-can-you-output-update-insert-query-results-when-using-mysql-e-execute

0 голосов
/ 13 апреля 2010
 deleted=`mysql mydb -e "delete from mytable where insertedtime < '2010-04-01 00:00:00'"|tail -n 1`


 int icount = mysql_CountRow(deleted);

это работает для меня, попробуйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...