2016-07-24 1 views
-1

например, в моей таблице У меня есть столбцы домена и электронной почты, и данные, подобные этому столбцу электронной почты, имеют что-то @Gmail.com, а в столбце домена есть www.something .com. Я хочу изменить имя столбца домена на имя имени электронной почты, если это возможно или неЕсли у меня есть два столбца в таблице, как менять имена столбцов в oracle?

+1

Просьба предоставить некоторые данные образца и объяснить вместе с ним – TheGameiswar

+0

Хорошо, я объяснил, что помог бы мне – sada

+0

Нет, вам нужно быть более явным. Покажите свою структуру таблицы, покажите 2-3 разных образца записей и покажите * то же самое *, но с теми же * записями, как вы хотите, чтобы они следили за изменением. –

ответ

4
ALTER TABLE your_table RENAME COLUMN email TO email_temp; 
ALTER TABLE your_table RENAME COLUMN domain TO email; 
ALTER TABLE your_table RENAME COLUMN email_temp TO domain; 
+0

SQL> создать таблицу привет (номер домена (9), номер электронной почты (8)); Таблица создана. SQL> изменить таблицу hello переименовать домен столбца по электронной почте; альтер стол привет переименовать домен столбца по электронной почте * ОШИБКА в строке 1: ORA-00957: дублирует имя столбца» – sada

+0

Ya - Вот почему я сначала необходимо выполнить, чтобы изменить' 'email' в email_temp', а затем все остальное. –

+0

если есть какой-либо запрос? – sada

1

просто ... вы получите тот же эффект, просто путем замены данных:

UPDATE your_table SET email = domain, domain = email; 

Плюс, это будет сделано в одной транзакции.

+0

. Я не прошу обмена данными. – sada

+0

@sada - это логически эквивалентно - другими словами, вы получите тот же ** логический результат **, заменив * данные * поверх вместо * имен столбцов *. –

+0

-Подписной столбец электронной почты есть что-то@gmail.com данные и столбец домена www.sometimes.com, что является логическим результатом, нет смысла менять свопинг – sada

Смежные вопросы