Как скопировать поле из таблицы вставить в другую таблицу с такими же свойствами - PullRequest
0 голосов
/ 11 сентября 2011

Я ищу это часами.

Я просто хочу скопировать некоторые поля из одной таблицы в другую таблицу. В таблице назначения полей, которые я хочу скопировать, не существует.

Это как копировать и вставлять.

Ex. У меня к столам

Таблица A Like

`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`active` int(11) DEFAULT '0'

Таблица B, как

`date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`alias` varchar(255) DEFAULT NULL,
`voters` int(11) DEFAULT NULL,
`level` int(11) NOT NULL DEFAULT '0',
`content` text

Ex. Я хочу скопировать «содержание, уровень, избирателей» из таблицы B в таблицу A с той же структурой и данными.

Я так думаю, но КАК?

Alter Table A Add content (same SCHEMA as TABLE B.content)
Alter Table A Add level (same SCHEMA as TABLE B.level)
Alter Table A Add level (voters SCHEMA as TABLE B.voters)

1 Ответ

1 голос
/ 11 сентября 2011
INSERT INTO A (col1  , col2 , col3) 
SELECT colB1, colB2,colB3 
FROM B 

они должны быть того же типа данных и размера

UPDATE если таблица A не содержит данных, вы можете создать ее следующим образом

CREATE TABLE A LIKE B;

Используйте LIKE для создания пустой таблицы на основе определения другой таблицы, включая любые атрибуты столбцов и индексы, определенные в исходной таблице:

затем сделайте оператор вставки выше

Если вы хотите сохранить данные в таблице A и добавить несколько столбцов из таблицы B, вы можете объединить эти две таблицы в новую таблицу X, затем удалить таблицу A и переименовать X

CREATE TABLE X 
SELECT * from emp;

Примечание: , если таблица A содержит много записей, это займет слишком много времени и не является хорошим решением

но ваше предложение select будет содержать join, если между A и B есть связь, скажите мне написать более конкретное решение

...