-1

问题 1)

我想将表(结构和数据)克隆到同一服务器上的另一个数据库。

我想知道如何使用 MySQLi 复制它:

 CREATE  TABLE  `insurance`.`GD14062013` (  `URN` varchar( 30  )  NOT  NULL ,
 `Title` varchar( 30  )  NOT  NULL ,
 `FirstName` varchar( 30  )  NOT  NULL ,
 `LastName` varchar( 30  )  NOT  NULL ,
 `ADD` varchar( 500  )  NOT  NULL ,
 `SUB` varchar( 100  )  NOT  NULL ,
 `STATE` varchar( 100  )  NOT  NULL ,
 `POSTCODE` varchar( 30  )  NOT  NULL ,
 `DPID` varchar( 30  )  NOT  NULL ,
 `LanLine` varchar( 30  )  NOT  NULL ,
 `Mobile` varchar( 30  )  NOT  NULL ,
 `DUP` varchar( 11  )  NOT  NULL ,
 KEY  `LanLine` (  `LanLine` ,  `Mobile`  )  ) ENGINE  = InnoDB  DEFAULT CHARSET  = latin1;

SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

INSERT INTO `insurance`.`GD14062013` SELECT * FROM `GDMASTER`.`GD14062013`;

问题 2)

在我不再需要它们之后,我想删除又名更改列。这有效:

$query = "ALTER TABLE  `$table` ADD  `primary` VARCHAR( 10 ) NOT NULL";
$mysqli->query($query); 
$query = "ALTER TABLE  `$table` ADD  `alternitive` VARCHAR( 10 ) NOT NULL";
$mysqli->query($query); 

这不会:

    $query = "ALTER TABLE  `$table` DROP  `primary` VARCHAR( 10 ) NOT NULL";
    $mysqli->query($query); 
    $query = "ALTER TABLE  `$table` DROP  `alternitive` VARCHAR( 10 ) NOT NULL";
    $mysqli->query($query);         
4

2 回答 2

0

尝试:

$query = "ALTER TABLE  `$table` DROP  `primary`";
$mysqli->query($query); 
$query = "ALTER TABLE  `$table` DROP  `alternitive`";
$mysqli->query($query);         

删除时无需传递列数据类型。

MySQL ALTER TABLE 规范

ALTER TABLE tbl_name
    DROP [COLUMN] col_name
于 2013-06-14T09:18:58.623 回答
0

不应该是

$query = "ALTER TABLE  `$table` DROP COLUMN  `primary`";
$mysqli->query($query); 
$query = "ALTER TABLE  `$table` DROP COLUMN `alternitive`";
$mysqli->query($query); 

注意 DROP COLUMN。您可以删除表格的其他部分以进行更改。即COLUMN, INDEX,PRIMARY KEYFOREIGN KEY.

请参阅有关更改表的 MySQL 手册。

于 2013-06-14T09:20:12.073 回答