Итак, я просматриваю нашу базу данных и удаляю некоторые ненужные уровни доступа, которые в основном дублируют другие.В нашей структуре базы данных есть столбец user_level
, который представляет собой перечисление, содержащее множество различных строк (я знаю, что это не лучший способ для запуска уровней доступа пользователей, но именно так это сделал оригинальный разработчик) .
Что я хочу сделать, так это создать откат, который сохранит все user_id с соответствующим им user_level, чтобы через несколько дней, если мы увидим, что у нас возникли проблемы с уровнями доступа, мы можем откатиться без ошибоклюбые другие изменения, произошедшие в базе данных с тех пор, как мы запустили команду обновления.
Я думал о том, чтобы просто выполнить
SELECT users.id, users.user_level
FROM users
WHERE users.user_level NOT IN ('Program Administrator','Executive','Sales Manager / Office Manager/ Company President');
, а затем просто манипулировать данными таким образом,но мне бы очень хотелось, чтобы он создал для меня запрос, чтобы мы могли поместить его в нашу систему отслеживания билетов, и все, что нам нужно сделать, это скопировать / вставить запрос в наш инструмент sql, чтобы запустить его для отката.
Однако я не уверен, что лучший подход.У нас около 58 000 записей о пользователях в нашей базе данных.
Так что мой вопрос: есть ли у кого-нибудь идеи о том, как мне поступить, и, возможно, некоторые примеры для этого пользовательского отката.
EDIT:
Поэтому я ищу эквивалент этого php-кода, но для MySQL
while ($user = mysql_fetch_array($databaseObj->result)) {
echo "UPDATE users SET user_level = '". $user['user_level'] ."' WHERE id='".$user['id']."'";
echo "<br>";
}
, который будет выводить
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='80006'
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='48'
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='42'
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='47'
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='49'
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='52'
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='58'
UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='60'
, который затем я могу сохранить в.sql файл и просто запустите этот файл, если мне нужно тоже.