Mysql 将所有字段添加到另一个表的最快方法?
我想将所有字段从Mysql 将所有字段添加到另一个表的最快方法?,mysql,sql,database,Mysql,Sql,Database,我想将所有字段从temp\u sales表复制到sales表(在特定字段之后)。我想用最快的方法做这件事。。如何在SQL中实现这一点 CREATE TABLE IF NOT EXISTS `temp_sales` ( `field1` varchar(10) NOT NULL, `field2` varchar(20) NOT NULL, `field3` varchar(20) NOT NULL, `field4` varchar(50) NOT NULL, `field5
temp\u sales
表复制到sales
表(在特定字段之后)。我想用最快的方法做这件事。。如何在SQL中实现这一点
CREATE TABLE IF NOT EXISTS `temp_sales` (
`field1` varchar(10) NOT NULL,
`field2` varchar(20) NOT NULL,
`field3` varchar(20) NOT NULL,
`field4` varchar(50) NOT NULL,
`field5` varchar(50) NOT NULL,
`field6` varchar(50) NOT NULL,
`field7` varchar(50) NOT NULL,
`field8` tinyint(2) NOT NULL,
`field9` tinyint(2) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13692 ;
换句话说,sales表中有一些字段。我想在
temp\u sales
(无数据)的sales
表中添加更多新的字段。这是一个三步过程:
.1。在temp\u sales
中需要一些唯一或主键字段,将temp\u sales
中的一行链接到sales
中的相应行(同样通过唯一/主键)
.2。您需要一个DDL语句,例如
ALTER TABLE `sales`
ADD COLUMN `field1`VARCHAR(10) AFTER `whatever`,
ADD COLUMN `field2`VARCHAR(10) AFTER `fields2`,
...
UPDATE `sales`
INNER JOIN `temp_sales` ON `sales`.`keyfield`=`temp_sales`.`keyfield`
SET `sales`.`field1`=`tempsales`.`field1`,
`sales`.`field2`=`tempsales`.`field2`,
...
.3。您需要一个DML语句,例如
ALTER TABLE `sales`
ADD COLUMN `field1`VARCHAR(10) AFTER `whatever`,
ADD COLUMN `field2`VARCHAR(10) AFTER `fields2`,
...
UPDATE `sales`
INNER JOIN `temp_sales` ON `sales`.`keyfield`=`temp_sales`.`keyfield`
SET `sales`.`field1`=`tempsales`.`field1`,
`sales`.`field2`=`tempsales`.`field2`,
...
您可以这样做:
mysql> create table new_table_name as(select * from existing_table_name);
//It will also populate existing table data to new table if present
//If old table is empty then it will create same copy of that table
In your case:
mysql> create table sales as(select * from temp_sales);
ALTER TABLE
sales`ADD COLUMN`仍然需要花费很多时间才能写出来。我有大约30个字段要添加:(这是没有办法的。复制粘贴是你需要的。只是要明确一点:在MySQL中没有办法引用字段名,因为数据-DDL和DML不能混合。如果你解释你需要它的原因,也许我们可以提供替代方案。