Я работаю над базой данных Oracle. Он имеет таблицу USR_INFO и имеет следующие столбцы.Перенос данных в Oracle
- U_ID
- U_NAME
- U_ROLE
U_ROLE может быть значением "A", "B" или "C".
Теперь я хочу, чтобы создать новую таблицу с именем ROLE_INFO, имеющие следующие столбцы
- ROLE_ID
- ROLE_NAME
- ROLE_TAG
Задача состоит в том, чтобы запросить в USR_INFO и искать U_ROLE = = "B", а затем, если он соответствует , тогда скопируйте U_ID в ROLE_ID и U_NAME в ROLE_NAME. Я хочу сделать это для всех строк в USR_INFO. При этом я также хочу вставить «BB» в ROLE_TAG.
После завершения копирования всех данных в ROLE_INFO. Я хочу найти U_ROLE == "B" в USR_INFO и удалить все эти строки, не затрагивая других.
Это то, что я сделал до сих пор.
Создать новую таблицу под названием ROLE_INFO
CREATE TABLE ROLE_INFO
(
ROLE_ID INT,
ROLE_NAME VARCHAR(255),
ROLE_TAG VARCHAR(10)
);
Теперь для копирования, я сделал это,
INSERT INTO ROLE_INFO (ROLE_ID, ROLE_NAME)
SELECT U_ID, U_NAME
FROM USR_INFO
WHERE U_ROLE == "B"
// Когда я делать вставки, как убедиться в том, что ROLE_TAG получает заполняется "BB"?
Для удаления
DELETE FROM USR_INFO
WHERE U_ROLE == "B";
// Будет ли это просто удалить строку, которая уже скопированное ROLE_INFO? Или он удалит больше?
Технически этот вопрос не связан с миграцией, возможно, реструктуризацией. Миграция обычно подразумевает перемещение данных из БД в БД, в большинстве случаев другой тип БД (т.е.e Oracle на SQL-сервер и т. д.). Кроме этого - хорошо структурированный вопрос, престиж. –